public abstract class Transporter extends MoleculerComponent implements MetricConstants
| Modifier and Type | Field and Description |
|---|---|
protected java.util.concurrent.ScheduledFuture<?> |
checkTimeoutTimer
Cancelable "Check Activities / Infos" timer
|
protected MetricCounter |
counterTransporterPacketsReceivedBytes |
protected MetricCounter |
counterTransporterPacketsReceivedTotal |
protected MetricCounter |
counterTransporterPacketsSentBytes |
protected MetricCounter |
counterTransporterPacketsSentTotal |
protected boolean |
debug
Writes the communication of method calls and events into the log.
|
protected boolean |
debugHeartbeats
Writes the communication of heartbeats/gossiping into the log.
|
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 |
protected MetricGauge |
gaugeTransitConnected |
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 java.util.concurrent.atomic.AtomicLong |
infoScheduledAt |
protected java.lang.String |
instanceID |
protected java.util.concurrent.atomic.AtomicLong |
lastReceivedMessageAt |
protected Metrics |
metrics |
protected Monitor |
monitor |
protected java.lang.String |
namespace
Namespace of channels.
|
protected java.lang.String |
nodeID
Local Node ID.
|
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
Prefix of channels.
|
protected java.lang.String |
protocolVersion
ServiceBroker's protocol version
|
protected ServiceRegistry |
registry |
java.lang.String |
requestChannel |
java.lang.String |
responseChannel |
protected java.util.concurrent.ScheduledExecutorService |
scheduler |
protected Serializer |
serializer |
protected ServiceInvoker |
serviceInvoker |
protected int |
subscriptionTimeout
Timeout of channel subscriptions (SECONDS).
|
protected UidGenerator |
uidGenerator |
protected boolean |
usingJsonSerializer |
broker, logger, nameMOLECULER_CACHER_CLEAN_TIME, MOLECULER_CACHER_CLEAN_TIME_DESC, MOLECULER_CACHER_CLEAN_TOTAL, MOLECULER_CACHER_CLEAN_TOTAL_DESC, MOLECULER_CACHER_DEL_TIME, MOLECULER_CACHER_DEL_TIME_DESC, MOLECULER_CACHER_DEL_TOTAL, MOLECULER_CACHER_DEL_TOTAL_DESC, MOLECULER_CACHER_EXPIRED_TOTAL, MOLECULER_CACHER_EXPIRED_TOTAL_DESC, MOLECULER_CACHER_FOUND_TOTAL, MOLECULER_CACHER_FOUND_TOTAL_DESC, MOLECULER_CACHER_GET_TIME, MOLECULER_CACHER_GET_TIME_DESC, MOLECULER_CACHER_GET_TOTAL, MOLECULER_CACHER_GET_TOTAL_DESC, MOLECULER_CACHER_SET_TIME, MOLECULER_CACHER_SET_TIME_DESC, MOLECULER_CACHER_SET_TOTAL, MOLECULER_CACHER_SET_TOTAL_DESC, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL_DESC, MOLECULER_EVENT_BROADCAST_TOTAL, MOLECULER_EVENT_BROADCAST_TOTAL_DESC, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL_DESC, MOLECULER_EVENT_EMIT_TOTAL, MOLECULER_EVENT_EMIT_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_ACTIVE, MOLECULER_EVENT_RECEIVED_ACTIVE_DESC, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_TIME, MOLECULER_EVENT_RECEIVED_TIME_DESC, MOLECULER_EVENT_RECEIVED_TOTAL, MOLECULER_EVENT_RECEIVED_TOTAL_DESC, MOLECULER_EXECUTOR, MOLECULER_REQUEST_ACTIVE, MOLECULER_REQUEST_ACTIVE_DESC, MOLECULER_REQUEST_ERROR_TOTAL, MOLECULER_REQUEST_ERROR_TOTAL_DESC, MOLECULER_REQUEST_LEVELS, MOLECULER_REQUEST_LEVELS_DESC, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL_DESC, MOLECULER_REQUEST_TIME, MOLECULER_REQUEST_TIME_DESC, MOLECULER_REQUEST_TIMEOUT_TOTAL, MOLECULER_REQUEST_TIMEOUT_TOTAL_DESC, MOLECULER_REQUEST_TOTAL, MOLECULER_REQUEST_TOTAL_DESC, MOLECULER_SCHEDULER, MOLECULER_TRANSIT_CONNECTED, MOLECULER_TRANSIT_CONNECTED_DESC, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL_DESC, MOLECULER_TRANSIT_REQUESTS_ACTIVE, MOLECULER_TRANSIT_REQUESTS_ACTIVE_DESC, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL_DESC| 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 void |
broadcastTransporterConnected() |
protected void |
broadcastTransporterDisconnected() |
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) |
protected void |
error(java.lang.Throwable error)
Any I/O error occurred.
|
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() |
java.lang.String |
getInstanceID() |
long |
getLastHeartbeatTime(java.lang.String nodeID) |
java.lang.String |
getNamespace() |
int |
getOfflineTimeout() |
java.lang.String |
getPrefix() |
Serializer |
getSerializer() |
int |
getSubscriptionTimeout() |
boolean |
isDebug() |
boolean |
isDebugHeartbeats() |
boolean |
isOnline(java.lang.String nodeID) |
boolean |
isPreferHostname() |
protected void |
processReceivedMessage(java.lang.String channel,
byte[] message)
Process incoming message directly (without new Task).
|
protected void |
processReceivedMessage(java.lang.String channel,
io.datatree.Tree 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 |
scheduleInfoPacket() |
void |
sendClosePacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
long sequence) |
void |
sendDataPacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
byte[] bytes,
long sequence) |
protected void |
sendDisconnectPacket() |
protected void |
sendDiscoverPacket(java.lang.String channel) |
void |
sendErrorPacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
java.lang.Throwable cause,
long sequence) |
void |
sendEventPacket(java.lang.String nodeID,
Context ctx,
Groups groups,
boolean broadcast) |
protected void |
sendHeartbeatPacket() |
protected void |
sendInfoPacket(java.lang.String channel) |
protected void |
sendPongPacket(java.lang.String channel,
io.datatree.Tree data) |
void |
sendRequestPacket(java.lang.String nodeID,
Context ctx) |
void |
setDebug(boolean debug) |
void |
setDebugHeartbeats(boolean debugHeartbeats) |
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 java.lang.String protocolVersion
protected int heartbeatInterval
protected int heartbeatTimeout
protected int offlineTimeout
protected int subscriptionTimeout
protected boolean preferHostname
protected boolean debug
protected boolean debugHeartbeats
protected Serializer serializer
protected boolean usingJsonSerializer
protected final java.lang.String instanceID
protected java.util.concurrent.ExecutorService executor
protected java.util.concurrent.ScheduledExecutorService scheduler
protected ServiceRegistry registry
protected ServiceInvoker serviceInvoker
protected Eventbus eventbus
protected Monitor monitor
protected UidGenerator uidGenerator
protected Metrics metrics
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
protected final java.util.concurrent.atomic.AtomicLong infoScheduledAt
protected final java.util.concurrent.atomic.AtomicLong lastReceivedMessageAt
protected MetricGauge gaugeTransitConnected
protected MetricCounter counterTransporterPacketsSentTotal
protected MetricCounter counterTransporterPacketsSentBytes
protected MetricCounter counterTransporterPacketsReceivedTotal
protected MetricCounter counterTransporterPacketsReceivedBytes
public Transporter()
public Transporter(Serializer serializer)
public void started(ServiceBroker broker) throws java.lang.Exception
started in interface MoleculerLifecyclestarted 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 interface MoleculerLifecyclestopped in class MoleculerComponentprotected void sendInfoPacket(java.lang.String channel)
protected void sendDiscoverPacket(java.lang.String channel)
protected void sendHeartbeatPacket()
protected void sendDisconnectPacket()
protected void sendPongPacket(java.lang.String channel,
io.datatree.Tree data)
public io.datatree.Tree createPingPacket(java.lang.String id)
public void sendEventPacket(java.lang.String nodeID,
Context ctx,
Groups groups,
boolean broadcast)
public void sendRequestPacket(java.lang.String nodeID,
Context ctx)
public void sendDataPacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
byte[] bytes,
long sequence)
public void sendErrorPacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
java.lang.Throwable cause,
long sequence)
public void sendClosePacket(java.lang.String cmd,
java.lang.String nodeID,
Context ctx,
long sequence)
public 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 processReceivedMessage(java.lang.String channel,
io.datatree.Tree message)
channel - incoming channelmessage - incoming messageprotected void updateNodeInfo(java.lang.String sender,
io.datatree.Tree info)
throws java.lang.Exception
java.lang.Exceptionprotected void broadcastTransporterConnected()
protected void broadcastTransporterDisconnected()
protected 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 scheduleInfoPacket()
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)
public boolean isDebugHeartbeats()
public void setDebugHeartbeats(boolean debugHeartbeats)
public java.lang.String getInstanceID()