一种高可用分布式队列服务实现方法、装置和系统的制作方法

文档序号:9846858阅读:309来源:国知局
一种高可用分布式队列服务实现方法、装置和系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种高可用分布式队列服务实现方法、装置和系统。
【背景技术】
[0002]接口服务为第三方开发者使用网站服务商提供的网站提供了开放的使用平台。现有的接口服务提供方式主要包括:
[0003]方案一:单机版;该方案实现的队列服务数据和接口服务部署在同一台机器上,只有一台接口服务器对外提供服务,并且将数据存储在本地内存、文件或数据库中。
[0004]方案二:单存储、多接口服务;该方案对外有多台接口服务器,可以提供较高并发。但数据存储在独立的缓存服务器或者数据库服务器。
[0005]方案三:多机存储,多接口服务器;该方案数据分散在各台接口服务器中,每个接口服务器存储部分数据。且有一台专门的主控服务器记录着数据所在的地址。
[0006]然而,上述各方案存在如下不足:
[0007]针对方案一,存在单点故障问题、并发性低;
[0008]针对方案二,数据存储可能产生单点问题,并且如果无同步锁机制则不能保证数据一致性,如果加上同步锁机制则会降低效率。
[0009]针对方案三,访问接口时,需要一个寻址的过程,降低了并发性。并且虽然数据分别存储在不同机器,但对于每一个机器而言,仍存在单机问题。
[0010]所以,如何克服上述问题,能够提供一套高可用、高可扩展、高并发、去中心化的队列接口服务,成为本发明所要解决的技术问题。

【发明内容】

[0011]鉴于上述问题,提出了本发明以便提供一种解决上述问题的高可用分布式队列服务实现方法、装置和系统。
[0012]依据本发明的一个方面,提供一种高可用分布式队列服务实现方法,应用于队列接口服务器,所述方法包括:
[0013]当接收到客户端发送的数据时,请求Zookeeper服务器集群创建该数据的持久顺序节点,待持久顺序节点创建后,将所述数据存入本地的内存队列;
[0014]当接收到客户端发送的获取数据的请求时,从本地的内存队列中摘取队头数据,并请求所述Zookeeper服务器集群删除该数据的持久顺序节点,待节点删除成功后,将摘取的数据反馈给客户端;
[0015]以及当监听到所述Zookeeper服务器集群内的节点变化时,将节点变化引起的数据变化同步到本地的内存队列。
[0016]依据本发明的另一个方面,提供一种高可用分布式队列服务实现方法,应用于Zookeeper服务器集群,所述方法包括:
[0017]接收队列服务集群内的队列接口服务器发送的创建或删除节点的请求;
[00?8]基于请求,在维护的Zookeeper队列中,创建新持久顺序节点或删除已有持久顺序节点,并将节点变化同步到所述队列服务集群内的各队列接口服务器。
[0019]依据本发明的第三个方面,提供一种队列接口服务器,包括:
[0020]数据追加处理模块,用于接收到客户端发送的数据,请求Zookeeper服务器集群创建该数据的持久顺序节点,待持久顺序节点创建后,将所述数据存入本地的内存队列;
[0021]数据获取处理模块,用于接收到客户端发送的获取数据的请求,从本地的内存队列中摘取队头数据,并请求所述Zookeeper服务器集群删除该数据的持久顺序节点,待节点删除成功后,将摘取的数据反馈给客户端;
[0022]数据同步处理模块,用于当监听到所述Zookeeper服务器集群内的节点变化时,将节点变化引起的数据变化同步到本地的内存队列。
[0023]依据本发明的第四个方面,提供一种Zookeeper服务器集群,所述Zookeeper服务器集群包括若干Zookeeper服务器,所述Zookeeper服务器包括:
[0024]请求接收模块,用于接收队列服务集群内的队列接口服务器发送的创建或删除节点的请求;
[0025]请求处理模块,用于基于请求,在Zookeeper服务器集群维护的Zookeeper队列中,创建新持久顺序节点或删除已有持久顺序节点;
[0026]监控模块,用于将所述Zookeeper队列节点变化同步到所述队列服务集群内的各队列接口服务器。
[0027]依据本发明的第五个方面,提供一种高可用分布式队列服务实现系统,包括队列服务集群、本发明所提供的Zookeeper服务器集群和一个或至少两个客户端;其中,所述队列服务集群中包含若干本发明所提供的队列接口服务器。
[0028]本发明有益效果如下:
[0029]本发明采用集群方案,有效的避免了单点故障。任何一台接口服务器或者Zookeeper服务器异常都不会影响整体服务。并且,本发明所述方案中每个队列接口服务器都可以依据自身队列对外提供服务,并采取有效手段保持数据一致性。有效的解决分布式锁的问题,避免了资源争抢和资源死锁的问题。可见,本发明提供了一种高可用、高可扩展、高并发的队列服务的实现方案,为企业应用集成和分布式业务协同提供了一个可靠的选择。
【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本发明提供的高可用分布式队列服务实现方法应用的系统架构图;
[0032]图2为本发明中Zookeeper队列结构图;
[0033]图3为本发明中基于Zookeeper的Watcher机制实现数据同步的示意图;
[0034]图4为本发明中分布式队列示意图;
[0035]图5为本发明实现队列追加数据的流程图;
[0036]图6为本发明实现队列获取数据的流程图;
[0037]图7为本发明提供的一种队列接口服务器的结构框图;
[0038]图8为本发明提供的一种Zookeeper服务器的结构框图。
【具体实施方式】
[0039]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]方法实施例
[0041]本发明实施例提供一种高可用分布式队列服务实现方法,该方法采用Zookeeper机制提供了一套高可用、高可扩展、高并发的队列服务实现方案。
[0042]本实施例所述方法的实施主要涉及以下功能实体-Zookeeper服务器集群和队列服务集群;其中,Zookeeper服务器集群包括若干Zookeeper服务器,队列服务集群包括若干队列接口服务器。下面分别阐述各功能实体的具体实施过程,以对本发明所提出的方法进行详细说明。具体的:
[0043]本发明实施例中,在队列接口服务器侧实现高可用分布式队列服务的实现方法包括:
[0044]当接收到客户端发送的数据时,请求Zookeeper服务器集群创建该数据的持久顺序节点,待持久顺序节点创建后,将所述数据存入本地的内存队列;
[0045]当接收到客户端发送的获取数据的请求时,从本地的内存队列中摘取队头数据,并请求所述Zookeeper服务器集群删除该数据的持久顺序节点,待节点删除成功后,将摘取的数据反馈给客户端;
[0046]以及当监听到所述Zookeeper服务器集群内的节点变化时,将节点变化引起的数据变化同步到本地的内存队列。
[0047]其中,Zookeeper服务器集群内的节点变化可能是由队列接口服务器所属的队列服务集群内任一队列接口服务器的操作引起的节点变化。
[0048]在本发明的一个具体实施例中,队列接口服务器通过Zookeeper的Watcher机制监听所述Zookeeper服务器集群内的节点变化。
[0049]本发明实施例中,在Zookeeper服务器集群侧实现高可用分布式队列服务的实现方法包括:
[0050]接收队列服务集群内的队列接口服务器发送的创建或删除节点的请求;
[0051]基于请求,在维护的Zooke
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1