1.一种提高消息传递性能的集群通信系统,包括消息发布端、包含多台消息服务器的消息服务器集群、消息订阅端和分布式协调服务集群;其特征在于:所述消息发布端和消息订阅端通过消息服务集群连接,并通过消息服务集群传递消息,消息发布端、消息服务器集群和消息订阅端都与分布式协调服务集群保持长连接;
所述消息发布端按照发布消息的主题Topic类别不同划分为不同的组,用一个groupID作为该组的唯一标识;
所述消息订阅端按照定阅消息的主题Topic类别不同划分为不同的组,用一个groupID作为该组的唯一标识;
所述消息发布端和消息订阅端定时从分布式协调服务集群拉取Topic路由信息并更新到本地,以获取该向哪一台消息服务器发布消息或拉取消息,而每台消息服务器则定时向分布式协调服务集群发布提供存储和转发服务的Topic和IP地址端口信息。
2.根据权利要求1所述提高消息传递性能的集群通信系统,其特征在于:消息服务器集群将接收的消息按照主题分片保存在不同的消息服务器上。
3.根据权利要求2所述提高消息传递性能的集群通信系统,其特征在于:为每个存储分片消息的消息服务器增加复制集群,复制集群中的每个节点都存储主节点的同一份数据,复制因子R表示一份数据复制保存在R个不同节点上。
4.根据权利要求3所述提高消息传递性能的集群通信系统,其特征在于:所述复制集群包括一个主响应机leader和该主响应机leader的至少一个备用响应机follower,最初的主响应机leader通过用户配置确定,当leader失效的时候,由该leader的所有follower投票选举其中之一follower成为新的leader,接替之前失效的leader。
5.根据权利要求2所述提高消息传递性能的集群通信系统,其特征在于:所述消息服务器集群将接收的消息按照主题分片保存在不同的消息服务器上,包括消息依据不同的Topic保存在不同的逻辑队列中,逻辑队列用来指定消息在真实的物理文件中的偏移位置,指向消息在物理文件中的索引。
6.根据权利要求5所述提高消息传递性能的集群通信系统,其特征在于:所述物理文件由多个文件SegmentFile构成,SegmentFile是由若干个不定长的存储单元组成的大小为
1GB的文件,每个存储单元指定了这条消息的长度和具体内容。
7.根据权利要求1所述提高消息传递性能的集群通信系统,其特征在于:消息服务器集群提供的消息服务中所有的消息都是持久化的,即消息的存储和转发利用操作系统提供的页缓存PageCache,如果在PageCache中没有命中数据则再去访问磁盘。
8.根据权利要求1所述提高消息传递性能的集群通信系统,其特征在于:消息发送端,消息服务器集群,消息订阅端两两之间底层数据通信采用推拉结合的长轮询的消息投递机制,消息服务器集群中某个节点根据实际消息的更新情况来处理消息订阅端发送过来的消息拉取请求,即如果无最新消息,服务器就会将请求阻塞,直到有新消息需要传递或超时时才返回;消息订阅端收到服务器发送回来的消息或者控制信息后调用处理函数处理完信息后,再次发送请求消息的长连接请求,继而等待消息到达,进入下一个循环。
9.一种提高消息传递性能的集群通信方法,其特征在于:包括:消息发布端初始化要发送消息并指定其Topic;消息发布端将本地的Topic路由信息定时与协调子系统同步,然后通过Topic路由信息确定该消息该发往哪一个消息服务器;消息服务器收到消息后,持久化到其文件系统,即首先写入PageCache,当写满一定的页数时再批量flush到磁盘;消息订阅端订阅Topic;消息订阅者向消息服务器拉取消息。
10.根据权利要求9所述提高消息传递性能的集群通信方法,其特征在于:消息订阅者拉取消息时进行负载均衡,即每个订阅者消费一个Topic下的 个逻辑队列,消费完成后删除消息服务器上存储的此条消息;N为该Topic下的逻辑队列数量,M为订阅组中的订阅者数量, 表示向下取整运算。