码迷,mamicode.com
首页 > 其他好文 > 详细

集群的消息接收通道

时间:2015-07-25 21:33:58      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:java   tribes   集群   消息接收   channelreceiver   

与消息发送通道对应,发送的消息需要一个接收端接收消息,它就是ChannelReceiver。接收端负责接收处理其他节点从消息发送通道发送过来的消息,实际情况如图每个节点都有一个ChannelSenderChannelReceiverChannelSender向其他节点的ChannelReceiver发送消息。本质是每个节点暴露一个端口作为服务端监听客户端,而每个节点又充当客户端连接其他节点的服务端,所以ChannelSender就是充当客户端的集合,ChannelReceiver充当服务端。

 技术分享

    集群消息复制过程中,每个节点ChannelReceiver负责接收来自其他节点的消息,假设一个n节点的集群,一般情况下每个ChannelReceiver对应n-1个连接,因为集群之间的通信连接都是长连接,长连接有助于提高通信效率,如下图,4个节点的集群,node1ChannelReceiver的客户端连接数为3,分别是node2node3node4三个节点作为客户端发起的socket连接。这三个节点产生的数据会通过此通道同步到node1节点,同样地,node2ChannelReceiver拥有node1node3node4的客户端连接,这三个节点产生的数据也会同步到node2节点。Node3node4也拥有三个客户端连接。为提高处理效率,此处还是使用NIO处理模型。

 技术分享

    除此之外,再接收操作中为了优化性能采取了很多措施,例如引入任务池,即是把接收任务提前定义好放入内存中,接收时可直接获取使用而不用再实例化;例如一次获取若干个报文进行处理,即使用nio模式读取消息到缓冲区后直接处理整个缓冲区的消息,它可能包含若干个报文;网络IO需要优化的地方及手段都比较多,tribes确实已经做了很多优化方面的工作。






喜欢java的同学可以交个朋友:

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

集群的消息接收通道

标签:java   tribes   集群   消息接收   channelreceiver   

原文地址:http://blog.csdn.net/wangyangzhizhou/article/details/47059701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!