public class TunnelStateMachine extends Object
ChannelConnect和Channel对应,有WAIT, RUNNING, CLOSING, CLOSE四种状态, 相关说明如下: 1. WAIT: 等待状态,ChannelConnect被创建出来的初始状态。 2. RUNNING: 运行中,此状态代表ChannelConnect工作良好,正在不断的拉取数据,处理数据和记录消费位点。 3. CLOSING: 关闭中,对应到Channel的CLOSING状态,处于此状态的ChannelConnect在数据处理过程中,会中断数据处理,并转为CLOSED状态。 4. CLOSED: 已关闭,ChannelConnect处于此状态已经无法再进行数据消费了,需要从活跃连接中移除,同时需要将其对应的Channel更新为CLOSE或TERMINATED状态。
| Constructor and Description |
|---|
TunnelStateMachine(String tunnelId,
String clientId,
IChannelDialer dialer,
IChannelProcessorFactory processorFactory,
TunnelClientInterface client) |
| Modifier and Type | Method and Description |
|---|---|
List<IChannelConnect> |
batchGetChannelConnects() |
List<com.alicloud.openservices.tablestore.model.tunnel.internal.Channel> |
batchGetChannels() |
void |
batchUpdateChannels(List<com.alicloud.openservices.tablestore.model.tunnel.internal.Channel> batchChannels) |
void |
close() |
ConcurrentHashMap<String,Integer> |
getChannelClosingRounds() |
void |
handleHangedClosingChannels() |
void |
setChannelClosingRoundThreshold(int channelClosingRoundThreshold) |
void |
setEnableClosingChannelDetect(boolean enableClosingChannelDetect) |
void |
updateStatus(com.alicloud.openservices.tablestore.model.tunnel.internal.Channel channel)
更新StateMachine中的活跃Channel信息,同时移除(ChannelId相同的)处于Closed状态的ChannelConnect.
|
public TunnelStateMachine(String tunnelId, String clientId, IChannelDialer dialer, IChannelProcessorFactory processorFactory, TunnelClientInterface client)
public void updateStatus(com.alicloud.openservices.tablestore.model.tunnel.internal.Channel channel)
channel - public List<IChannelConnect> batchGetChannelConnects()
public List<com.alicloud.openservices.tablestore.model.tunnel.internal.Channel> batchGetChannels()
public void batchUpdateChannels(List<com.alicloud.openservices.tablestore.model.tunnel.internal.Channel> batchChannels)
public void close()
public void handleHangedClosingChannels()
public void setEnableClosingChannelDetect(boolean enableClosingChannelDetect)
public void setChannelClosingRoundThreshold(int channelClosingRoundThreshold)
public ConcurrentHashMap<String,Integer> getChannelClosingRounds()
Copyright © 2024. All Rights Reserved.