本发明专利技术公开一种消息端口交换服务(PSS)系统,包括服务器集群和客户端集群;所述服务器集群通过多数派算法来选举出当前集群中的主节点,并以租期的形式确保所述主节点在指定期间内唯一;所述客户端集群包含了需要使用所述消息端口交换服务的各个客户端节点,且每个所述客户端节点均可按需分别与所述的主节点建立连接;所述客户端节点通过唯一的节点ID在所述服务器集群中标识自己。本发明专利技术本身是一个集成了故障检测、服务选举、服务发现和分布式锁等分布式协调功能的消息路由服务。它通过牺牲极端条件下的可靠性,在保证了强一致、高可用、可伸缩(横向扩展)的前提下,实现了极高的性能、容量和并发能力。
【技术实现步骤摘要】
本专利技术涉及一种分布式协调系统,尤其涉及一种白杨消息端口交换服务。
技术介绍
传统的分布式协调服务通常使用Paxos或Raft之类基于多数派的强一致分布式算法实现,主要负责为应用提供一个高可用、强一致的分布式元数据KV访问服务。并以此为基础,提供分布式锁、消息分发、配置共享、角色选举、服务发现、故障检测等分布式协调服务。常见的分布式协调服务实现包括Google Chubby(Paxos)、Apache ZooKeeper(Fast Paxos)、etcd(Raft)、Consul(Raft+Gossip)等。Paxos、Raft等分布式一致性算法的最大问题在于其极低的访问性能和极高的网络开销:对这些服务的每次访问,无论读写,都会产生两次在集群内部的广播——以投票的方式确定本次访问经过多数派确认(读也需要如此,因为主节点需要确认本次操作发生时,自己仍拥有多数票支持,仍是集群的合法主节点)。在实践中,虽可通过降低系统整体一致性或加入租期机制来优化读操作的效率,但其总体性能仍十分低下,并且对网络IO有很高的冲击:Google、Facebook、Twitter等公司的历次重大事故中,很多都是由于发生网络分区或人为配置错误导致Paxos、Raft等算法不停广播消息,致使整个网络陷入广播风暴而瘫痪。此外,由于Paxos、Raft等分布式一致性算法对网络IO的吞吐和延迟等方面均有较高要求,而连接多座数据中心机房(IDC)的互联网络通常又很难满足这些要求,因此导致依赖分布式协调算法的强一致(抗脑裂)多活IDC高可用集群架构难以以合理成本实现。作为实例:2015年5月支付宝和2013年7月微信平台分别长时间无法访问的事故均是由于单个IDC因市政施工(挖断光缆)等原因下线,同时未能成功构建多活IDC架构,因此造成IDC单点依赖所导致的。
技术实现思路
本专利技术的目的是:为了解决上述问题,提供了一种白杨消息端口交换服务(BYPSS),同样提供了故障检测、服务选举、服务发现和分布式锁等分布式协调功能,以及相同等级的强一致性、高可用性和抗脑裂(Split Brain)能力。在消除了几乎全部网络广播和磁盘IO等高开销操作的同时,提供了数千、甚至上万倍于前者的访问性能和并发处理能力。可在对网络吞吐和延迟等方面无附加要求的前提下,构建跨多个IDC的大规模分布式集群系统。为了实现上述目的,本专利技术的技术方案是:一种白杨消息端口交换服务(BYPSS),包括服务器集群和客户端集群;所述服务器集群通过多数派算法来选举出当前集群中的主节点,并以租期的形式确保所述主节点在指定期间内唯一;所述客户端集群包含了需要使用所述白杨消息端口交换服务的各个客户端节点,且每个所述客户端节点均可按需分别与所述的主节点建立连接;所述客户端节点通过唯一的节点ID在所述服务器集群中标识自己。进一步的,所述服务器集群采用一个主节点加多个从节点的模式或主节点加从节点加仲裁节点的模式。进一步的,每个所述客户端节点至少与所述白杨消息端口交换服务保持一个TCP长连接。进一步的,每个所述连接上可以注册任意多个消息端口;所述消息端口由一个UTF-8字符串描述,且在全局范围内唯一。进一步的,所述白杨消息端口交换服务对外提供的应用编程接口(API)原语包括:等待消息(WaitMsg)、续租(Relet)、注册端口(RegPort)、注销端口(UnRegPort)、消息发送(SendMsg)、端口查询(QueryPort)、节点查询(QueryNode)、清理(Clear)。进一步的,所述客户端集群与所述白杨消息端口交换服务的连接包括消息接收连接和消息发送连接。本专利技术由于采用了上述技术,使之与现有技术相比具有的积极效果是:本专利技术将标准的消息路由功能集成到了服务选举(注册端口)、服务发现(发送消息和查询端口信息)、故障检测(续租超时)以及分布式锁(端口注册和注销通知)等分布式协调服务中,是带有分布式协调能力的高性能消息转发服务,通过消息发送连接的接口,也可以将其单纯地当作带故障检测的服务选举和发现服务来使用。本专利技术将配置数据库(CMDB)等无关功能排除的设计进一步地增强了系统的容量和性能(相当于在传统KV存储机制中,仅保留了K:Key,去掉了V:Value的部分;或是在传统树形数据结构中,仅保留路径信息,去掉了值)。本专利技术为每个连接维护一个消息缓冲队列,将所有端口定义及待转发消息均保存在主节点内存中(Full in-memory);主从节点间无任何数据复制和状态同步开销;信息的发送和接收均使用纯异步IO实现,因而可提供高并发和高吞吐的消息转发性能。本专利技术具有可伸缩性,在单点性能遭遇瓶颈或需要跨地域部署时,可通过级联上级端口交换服务来进行扩展(类似IDC接入、汇聚、核心等多层交换体系)。附图说明图1是本专利技术白杨消息端口交换服务的一个主节点加多个从节点结构示意图。图2是本专利技术白杨消息端口交换服务的主节点加从节点加仲裁节点结构示意图。图3是树形结构横向扩展的BYPSS服务器集群和客户端集群的结构示意图。图4是本专利技术的使用实例。具体实施方式以下结合附图进一步说明本专利技术的实施例。为了使本专利技术的目的、技术方案和优点更加清楚明白,下面结合功能图和流程图,对本专利技术做进一步详细说明。以下的示意性实施方式及其说明用于解释本专利技术,但并不作为对本专利技术的限定。一种白杨消息端口交换服务(BYPSS),包括服务器集群和客户端集群;所述服务器集群通过多数派算法来选举出当前集群中的主节点,并以租期的形式确保所述主节点在指定期间内唯一;所述客户端集群包含了需要使用所述白杨消息端口交换服务的各个客户端节点,且每个所述客户端节点均可按需分别与所述的主节点建立连接;所述客户端节点通过唯一的节点ID在所述服务器集群中标识自己。请参见图1和图2所示,优选的,所述服务器集群采用一个主节点加多个从节点的模式或主节点加从节点加仲裁节点的模式。优选的,每个所述客户端节点至少与所述白杨消息端口交换服务保持一个TCP长连接。优选的,每个所述连接上可以注册任意多个消息端口;所述消息端口由一个UTF-8字符串描述,且在全局范围内唯一,若其它客户端节点已注册了相同的消息端口,则端口注册失败,消息端口包含一个消息缓存队列和一个端口注销通知列表。优选的,所述白杨消息端口交换服务对外提供的应用编程接口(API)原语包括:等待消息(WaitMsg)、续租(Relet)、注册端口(RegPort)、注销端口(UnRegPort)、消息发送(SendMsg)、端口查询(QueryPort)、节点查询(QueryNode)、清理(Clear)。端口交换服务对外提供的API原语包括:等待消息(WaitMsg):客户端集群中的每个节点均应保持一个到端口交换服务的TCP长连接,并调用此方法等待消息推送。此方法将当前客户端连接由消息发送连接升级为消息接收连接。每个节点号只能对应一个消息接收连接,若一个节点尝试同时发起两个消息接收连接,则较早的那个接收连接将被关闭,并且绑定到当前节点上的所有端口都将被注销。续租(Relet):若端口交换服务在指定的间隔内未收到来自某个消息接收连接的续租请求,则判定该节点已经下线,并释放所有属于该节点的端口。续租操作用来周期性地向端口交本文档来自技高网...
【技术保护点】
一种白杨消息端口交换服务(BYPSS),其特征在于:包括服务器集群和客户端集群;所述服务器集群通过多数派算法来选举出当前集群中的主节点,并以租期的形式确保所述主节点在指定期间内唯一;所述客户端集群包含了需要使用所述白杨消息端口交换服务的各个客户端节点,且每个所述客户端节点均可按需分别与所述的主节点建立连接;所述客户端节点通过唯一的节点ID在所述服务器集群中标识自己;所述服务器集群采用一个主节点加多个从节点的模式或主节点加从节点加仲裁节点的模式,所有数据仅存储在主节点内存中。
【技术特征摘要】
1.一种白杨消息端口交换服务(BYPSS),其特征在于:包括服务器集群和客户端集群;所述服务器集群通过多数派算法来选举出当前集群中的主节点,并以租期的形式确保所述主节点在指定期间内唯一;所述客户端集群包含了需要使用所述白杨消息端口交换服务的各个客户端节点,且每个所述客户端节点均可按需分别与所述的主节点建立连接;所述客户端节点通过唯一的节点ID在所述服务器集群中标识自己;所述服务器集群采用一个主节点加多个从节点的模式或主节点加从节点加仲裁节点的模式,所有数据仅存储在主节点内存中。2.根据权利要求1所述的白杨消息端口交换服务(BYPSS),其特征在于:每个所述客户端节点至少与所述白杨消息端口交换服务保持一个TCP长连接。3.根据权利要求2所述的白杨消息端口交换服务(BYPSS),其特征在于:每个所述连接上可以注册任意多个消息端口;所述消息端口的名称由一个UTF-8字符串描述,且在全局范围内唯一;所述消息端口包含一个消息缓存...
【专利技术属性】
技术研发人员:白杨,
申请(专利权)人:白杨,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。