public class SlaveNodeSelector extends Object implements NodeSelectorStrategy
This NodeSelectorStrategy
is a static configuration for the local
node to avoid processing any indexing operations locally.
It is assumed that some other node in the cluster will process it; which
node exactly is unknown, so messages are broadcasted to the group.
There is no guarantee of processing: if no master picks up the task, the index update operation is skipped. This can be mitigated by making sure at least one master is always online; if a persistent queue is needed it's better to use the JMS backend.
This implementation matches the jgroupsSlave configuration property.
Constructor and Description |
---|
SlaveNodeSelector() |
Modifier and Type | Method and Description |
---|---|
Message |
createMessage(byte[] data)
Different message options can be applied using different constructors,
hence we delegate Message construction to the strategy.
|
boolean |
isIndexOwnerLocal()
Specifies if the current (local) node should apply
changes to the index.
|
void |
setLocalAddress(Address address)
The implementation might need to know it's own address, so this
is provided at channel initial connection.
|
void |
viewAccepted(View view)
Invoked by JGroups on view change.
|
public boolean isIndexOwnerLocal()
NodeSelectorStrategy
isIndexOwnerLocal
in interface NodeSelectorStrategy
public void setLocalAddress(Address address)
NodeSelectorStrategy
setLocalAddress
in interface NodeSelectorStrategy
address
- the local addresspublic void viewAccepted(View view)
NodeSelectorStrategy
MembershipListener.viewAccepted(View)
viewAccepted
in interface NodeSelectorStrategy
view
- contains information on the current members of the cluster grouppublic Message createMessage(byte[] data)
NodeSelectorStrategy
createMessage
in interface NodeSelectorStrategy
data
- the information to be sent to the master.Copyright © 2006-2017 Red Hat, Inc. All Rights Reserved