Gossiper channel的运用

本文详细介绍了在系统中如何实现节点间的高效通知机制,包括注册特定的词汇处理器来处理Gossip协议中的消息,如消化摘要同步和确认。文章还讨论了消息接收过程中的流程管理和任务调度,确保不同阶段的消息能够正确处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

节点间的通知

注册

 ch.ethz.systems.cloudy2.server.components.gossiper.cassandra.Gossiper.load()

{

...

   CloudyFactory.getMessaging().registerVerbHandler(GOSSIP_DIGEST_SYN_VERB, new GossipDigestSynVerbHandler());
  CloudyFactory.getMessaging().registerVerbHandler(GOSSIP_DIGEST_ACK_VERB, new GossipDigestAckVerbHandler());
  CloudyFactory.getMessaging().registerVerbHandler(GOSSIP_DIGEST_ACK2_VERB, new GossipDigestAck2VerbHandler());
....

}

调用

public static void receive(Message message)  {
  if (CloudyFactory.getTestingComponent().isSleeping())
   return;
     
        Runnable runnable = new MessageDeliveryTask(message);

        ExecutorService stage = StageManager.getStage(message.getStage());
        if (stage == null)
        {
            if (logger_.isDebugEnabled())
                logger_.debug("Running " + message.getStage() + " on default stage");
            messageDeserializerExecutor_.execute(runnable);
        }
        else
        {         
            stage.execute(runnable);
        }
    }

 

public class MessageDeliveryTask implements Runnable
{
    private Message message_;
    
    public MessageDeliveryTask(Message message)
    {
        message_ = message;   
    }
   
    public void run()
    {
        String verb = message_.getVerb();
        IVerbHandler verbHandler = MessagingService.getInstance().getVerbHandler(verb);
        if (verbHandler == null) {
         logger_.warn("Unknown verb " + verb + ". No processing occurs");
        } else {
         verbHandler.doVerb(message_); 
        }     
       // System.out.println("PUT 2"+Thread.currentThread().getName());
    }
}

 

applicationState

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值