public abstract class Transporter extends MoleculerComponent
| Modifier and Type | Field and Description |
|---|---|
protected java.util.concurrent.ScheduledFuture<?> |
checkTimeoutTimer
Cancelable "Check Activities / Infos" timer
|
protected boolean |
debug |
java.lang.String |
disconnectChannel |
java.lang.String |
discoverBroadcastChannel |
java.lang.String |
discoverChannel |
protected Eventbus |
eventbus |
java.lang.String |
eventChannel |
protected java.util.concurrent.ExecutorService |
executor |
java.lang.String |
heartbeatChannel |
protected int |
heartbeatInterval
Heartbeat sending period in SECONDS.
|
protected int |
heartbeatTimeout
Heartbeat timeout in SECONDS.
|
protected java.util.concurrent.ScheduledFuture<?> |
heartBeatTimer
Cancelable "Heart Beat" timer
|
java.lang.String |
infoBroadcastChannel |
java.lang.String |
infoChannel |
protected java.util.concurrent.atomic.AtomicBoolean |
infoScheduled |
protected Monitor |
monitor |
protected java.lang.String |
namespace |
protected java.lang.String |
nodeID |
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,NodeDescriptor> |
nodes |
protected int |
offlineTimeout
How long keep information in registry about the offline nodes (SECONDS).
|
static java.lang.String |
PACKET_DISCONNECT |
static java.lang.String |
PACKET_DISCOVER |
static java.lang.String |
PACKET_EVENT |
static java.lang.String |
PACKET_HEARTBEAT |
static java.lang.String |
PACKET_INFO |
static java.lang.String |
PACKET_PING |
static java.lang.String |
PACKET_PONG |
static java.lang.String |
PACKET_REQUEST |
static java.lang.String |
PACKET_RESPONSE |
java.lang.String |
pingChannel |
java.lang.String |
pongChannel |
protected boolean |
preferHostname
Use hostnames instead of IP addresses As the DHCP environment is dynamic,
any later attempt to use IPs instead hostnames would most likely yield
false results.
|
protected java.lang.String |
prefix |
protected ServiceRegistry |
registry |
java.lang.String |
requestChannel |
java.lang.String |
responseChannel |
protected java.util.concurrent.ScheduledExecutorService |
scheduler |
protected Serializer |
serializer |
protected int |
subscriptionTimeout
Timeout of channel subscriptions (SECONDS).
|
protected UidGenerator |
uid |
broker, logger, name| Constructor and Description |
|---|
Transporter() |
Transporter(Serializer serializer) |
| Modifier and Type | Method and Description |
|---|---|
void |
broadcastInfoPacket() |
protected void |
broadcastNodeConnected(io.datatree.Tree info,
boolean reconnected) |
protected void |
broadcastNodeDisconnected(io.datatree.Tree info,
boolean unexpected) |
protected void |
broadcastNodeUpdated(io.datatree.Tree info) |
protected java.lang.String |
channel(java.lang.String cmd,
java.lang.String nodeID) |
protected void |
checkTimeouts() |
abstract void |
connect() |
protected void |
connected() |
protected void |
connected(boolean waitFor) |
io.datatree.Tree |
createPingPacket(java.lang.String id) |
io.datatree.Tree |
createRequestPacket(Context ctx) |
protected void |
error(java.lang.Throwable error)
Any I/O error occured.
|
RemoteAddress |
getAddress(java.lang.String nodeID) |
java.util.Set<java.lang.String> |
getAllNodeIDs() |
int |
getCpuUsage(java.lang.String nodeID) |
io.datatree.Tree |
getDescriptor(java.lang.String nodeID) |
int |
getHeartbeatInterval() |
int |
getHeartbeatTimeout() |
long |
getLastHeartbeatTime(java.lang.String nodeID) |
java.lang.String |
getNamespace() |
int |
getOfflineTimeout() |
java.lang.String |
getPrefix() |
Serializer |
getSerializer() |
int |
getSubscriptionTimeout() |
boolean |
isDebug() |
boolean |
isOnline(java.lang.String nodeID) |
boolean |
isPreferHostname() |
protected void |
processReceivedMessage(java.lang.String channel,
byte[] message)
Process incoming message directly (without new Task).
|
void |
publish(java.lang.String cmd,
java.lang.String nodeID,
io.datatree.Tree message) |
abstract void |
publish(java.lang.String channel,
io.datatree.Tree message) |
protected void |
received(java.lang.String channel,
byte[] message)
Process incoming message later (in a new Runnable or JoinForkTask).
|
protected void |
sendDisconnectPacket() |
protected void |
sendDiscoverPacket(java.lang.String channel) |
protected void |
sendHeartbeatPacket() |
protected void |
sendInfoPacket(java.lang.String channel) |
protected void |
sendPongPacket(java.lang.String channel,
io.datatree.Tree data) |
void |
setDebug(boolean debug) |
void |
setHeartbeatInterval(int heartbeatInterval) |
void |
setHeartbeatTimeout(int heartbeatTimeout) |
void |
setNamespace(java.lang.String namespace) |
void |
setOfflineTimeout(int offlineTimeout) |
void |
setPreferHostname(boolean preferHostname) |
void |
setPrefix(java.lang.String prefix) |
void |
setSerializer(Serializer serializer) |
void |
setSubscriptionTimeout(int subscriptionTimeout) |
void |
started(ServiceBroker broker)
Initializes transporter instance.
|
void |
stopped()
Closes transporter.
|
abstract io.datatree.Promise |
subscribe(java.lang.String channel) |
io.datatree.Promise |
subscribe(java.lang.String cmd,
java.lang.String nodeID) |
protected void |
updateNodeInfo(java.lang.String sender,
io.datatree.Tree info) |
getBroker, getLogger, getNamepublic static final java.lang.String PACKET_EVENT
public static final java.lang.String PACKET_REQUEST
public static final java.lang.String PACKET_RESPONSE
public static final java.lang.String PACKET_DISCOVER
public static final java.lang.String PACKET_INFO
public static final java.lang.String PACKET_DISCONNECT
public static final java.lang.String PACKET_HEARTBEAT
public static final java.lang.String PACKET_PING
public static final java.lang.String PACKET_PONG
public java.lang.String eventChannel
public java.lang.String requestChannel
public java.lang.String responseChannel
public java.lang.String discoverBroadcastChannel
public java.lang.String discoverChannel
public java.lang.String infoBroadcastChannel
public java.lang.String infoChannel
public java.lang.String disconnectChannel
public java.lang.String heartbeatChannel
public java.lang.String pingChannel
public java.lang.String pongChannel
protected java.lang.String namespace
protected java.lang.String prefix
protected java.lang.String nodeID
protected int heartbeatInterval
protected int heartbeatTimeout
protected int offlineTimeout
protected int subscriptionTimeout
protected boolean preferHostname
protected boolean debug
protected Serializer serializer
protected java.util.concurrent.ExecutorService executor
protected java.util.concurrent.ScheduledExecutorService scheduler
protected ServiceRegistry registry
protected Eventbus eventbus
protected Monitor monitor
protected UidGenerator uid
protected volatile java.util.concurrent.ScheduledFuture<?> heartBeatTimer
protected volatile java.util.concurrent.ScheduledFuture<?> checkTimeoutTimer
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,NodeDescriptor> nodes
protected final java.util.concurrent.atomic.AtomicBoolean infoScheduled
public Transporter()
public Transporter(Serializer serializer)
public void started(ServiceBroker broker) throws java.lang.Exception
started in class MoleculerComponentbroker - parent ServiceBrokerjava.lang.Exceptionprotected java.lang.String channel(java.lang.String cmd,
java.lang.String nodeID)
public abstract void connect()
protected void connected()
protected void connected(boolean waitFor)
public void stopped()
stopped in class MoleculerComponentpublic io.datatree.Tree createPingPacket(java.lang.String id)
public io.datatree.Tree createRequestPacket(Context ctx) throws java.util.concurrent.TimeoutException
java.util.concurrent.TimeoutExceptionpublic void publish(java.lang.String cmd,
java.lang.String nodeID,
io.datatree.Tree message)
public abstract void publish(java.lang.String channel,
io.datatree.Tree message)
public io.datatree.Promise subscribe(java.lang.String cmd,
java.lang.String nodeID)
public abstract io.datatree.Promise subscribe(java.lang.String channel)
protected void received(java.lang.String channel,
byte[] message)
channel - incoming channelmessage - incoming messageprotected void processReceivedMessage(java.lang.String channel,
byte[] message)
channel - incoming channelmessage - incoming messageprotected void updateNodeInfo(java.lang.String sender,
io.datatree.Tree info)
throws java.lang.Exception
java.lang.Exceptionprotected void broadcastNodeConnected(io.datatree.Tree info,
boolean reconnected)
protected void broadcastNodeUpdated(io.datatree.Tree info)
protected void broadcastNodeDisconnected(io.datatree.Tree info,
boolean unexpected)
public void broadcastInfoPacket()
protected void sendDiscoverPacket(java.lang.String channel)
protected void sendInfoPacket(java.lang.String channel)
protected void sendHeartbeatPacket()
protected void sendDisconnectPacket()
protected void sendPongPacket(java.lang.String channel,
io.datatree.Tree data)
protected void checkTimeouts()
public int getCpuUsage(java.lang.String nodeID)
public long getLastHeartbeatTime(java.lang.String nodeID)
public boolean isOnline(java.lang.String nodeID)
public java.util.Set<java.lang.String> getAllNodeIDs()
public io.datatree.Tree getDescriptor(java.lang.String nodeID)
public RemoteAddress getAddress(java.lang.String nodeID)
protected void error(java.lang.Throwable error)
error - I/O errorpublic Serializer getSerializer()
public void setSerializer(Serializer serializer)
public int getHeartbeatInterval()
public void setHeartbeatInterval(int heartbeatInterval)
public int getHeartbeatTimeout()
public void setHeartbeatTimeout(int heartbeatTimeout)
public boolean isDebug()
public void setDebug(boolean debug)
public int getOfflineTimeout()
public void setOfflineTimeout(int offlineTimeout)
public java.lang.String getNamespace()
public void setNamespace(java.lang.String namespace)
public java.lang.String getPrefix()
public void setPrefix(java.lang.String prefix)
public boolean isPreferHostname()
public void setPreferHostname(boolean preferHostname)
public int getSubscriptionTimeout()
public void setSubscriptionTimeout(int subscriptionTimeout)