??????????????????????broker??????????????scanNotActiveBroker????????????????scanNotActiveBroker????????????????????????????????????????

??????????????.....

if ((last + BROKER_CHANNEL_EXPIRED_TIME) < System.currentTimeMillis())  
??????????




------------------ ???????? ------------------
??????: "??????"<lushilin2...@tju.edu.cn>; 
????????: 2018??3??16??(??????) ????11:17
??????: "users"<users@rocketmq.apache.org>; 
????: Re:??????rocketmq????????????



????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????broker??????????????scanNotActiveBroker????????????????scanNotActiveBroker??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????broker??????????????????????????????????????
??2018-03-15??"????" <2372554...@qq.com> ????: -----????????-----
 ??????: "????" <2372554...@qq.com>
 ????????: 2018??3??15?? ??????
 ??????: users <users@rocketmq.apache.org>, users <users@rocketmq.apache.org>
 ????: ??????rocketmq????????????

?????? ??????????????????????????
scanNotActiveBroker ???? unregisterBroker?? registerBroker??????????????????????
scanNotActiveBroker ??10??????????????unregisterBroker ?? registerBroker 
????????????????????????????????
????????????????????????
scanNotActiveBroker  ??????????????????????
scanNotActiveBroker ??????????????????????
??10??????????????????????????????????????????????????????????????????????????????????????
????????????????




------------------ ???????? ------------------
??????: "??????"<lushilin2...@tju.edu.cn>; 
????????: 2018??3??14??(??????) ????3:23
??????: "users"<users@rocketmq.apache.org>; 
????: rocketmq????????????




this.brokerLiveTable = new HashMap<String, BrokerLiveInfo>(256); */
public void scanNotActiveBroker() {
    Iterator<Entry<String, BrokerLiveInfo>> it = 
this.brokerLiveTable.entrySet().iterator();
    while (it.hasNext()) {
        Entry<String, BrokerLiveInfo> next = it.next();
        long last = next.getValue().getLastUpdateTimestamp();
        if ((last + BROKER_CHANNEL_EXPIRED_TIME) < System.currentTimeMillis()) {
            RemotingUtil.closeChannel(next.getValue().getChannel());
            it.remove();
            log.warn("The broker channel expired, {} {}ms", next.getKey(), 
BROKER_CHANNEL_EXPIRED_TIME);
            this.onChannelDestroy(/**brokerAddress*/next.getKey(), 
/**??????channel*/next.getValue().getChannel());
        }
    }
}????????rocketmq??????????broker??????????????????????????????????????????????????????????????????????Iterator????????map??????????broker????????????????java.util.ConcurrentModificationException??

Reply via email to