zoukankan      html  css  js  c++  java
  • 集群通信组件tribes之集群的消息接收通道

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

     

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

     

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



    点击订购作者《Tomcat内核设计剖析》



  • 相关阅读:
    htmlUnil-2.33 jar包
    HtmlUnil 不兼容问题
    Java 网页抓取 工具类
    浏览器不兼容
    Chrome常用调试技巧1
    关于社交网络的思考
    google浏览器历史旧版
    EJB是什么Java使用EJB容器的详细概述
    何必言精通——十年杂感(转载)
    搜索优化—如何在Google搜索引擎上排名靠前Google左侧排名
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6908160.html
Copyright © 2011-2022 走看看