一种消息传递方法及消息传递中间件技术

技术编号:13794983 阅读:108 留言:0更新日期:2016-10-06 11:17
本申请实施例公开了一种消息传递方法及消息传递中间件,所述方法包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。本申请实施例提供的一种消息传递方法及消息传递中间件,可以提高业务事件的处理效率。

【技术实现步骤摘要】

本申请涉及计算机通信
,特别涉及一种消息传递方法及消息传递中间件
技术介绍
随着计算机通信技术的发展,迅速增长的海量数据远远超过了单台计算机的处理能力,依靠分布式计算把海量的数据切成小块分交到多台计算机去处理的方法应运而生。消息传递中间件在分布式系统中可以起到至关重要的作用。消息传递中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。现有的利用消息传递中间件传递消息的方法通常可以包括:消息传递中间件的连接管理模块接收到客户端发来的新的连接请求后,将所述连接请求发送至业务事件管理模块,所述业务事件管理模块根据所述连接请求的信息发送新建连接的请求至任务队列管理模块,所述任务队列管理模块在任务队列中添加新的任务,所述任务队列管理模块可以处理任务队列中的任务并向目标接收端发送消息。上述利用中间件穿了消息的方法在分布式系统中面对同时处理多种业务的消息时,采用单一线程或现场组的方式处理客户端所有业务事件。该单一线程或线程组可以处理来自不同业务的消息,并将消息分发到相应的消息接收端。同时,利用消息传递中间件传递消息的过程中还可以定期剔除超时连接。所述剔除超时连接的方法通常包括:保存与每一连接对应的最后时间,利用定时器每秒钟遍历一次所有连接,判断每一连接对应的最后时间与当前时间的时间差是否大于预设时间,若大于,剔除该最后时间对应的连接。在实现本申请过程中,专利技术人发现现有技术中至少存在如下问题:现有的消息传递方法采用单一线程处理客户端所有业务事件,分布式系统中业务的数据量可能会比较大,单一线程或线程组的消息传递方法可能导致一些事件长时间内不能得到响应而被判断为超时,另外,剔除超时连接的过程中需要对每一连接进行遍历,也可能导致不能及时剔除超时连接,导致业务事件处理的效率低。
技术实现思路
本申请实施例的目的是提供一种消息传递方法及消息传递中间件,以提高业务事件的处理效率。为解决上述技术问题,本申请实施例提供一种消息传递方法及消息传递中间件是这样实现的:一种消息传递方法,包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。优选方案中,所述根据配置文件生成增加或减少业务名称事件,包括:当配置文件中新增一个业务名称时,对应生成一个增加业务名称事件;当配置文件中减少一个业务名称时,对应生成一个减少业务名称事件;所述配置文件中包含业务名称。优选方案中,所述根据增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组包括:当生成一个增加业务名称事件时,新建一个与所述增加的业务名称对应的业务线程组;当生成一个减少业务名称事件时,销毁与所述减少的业务名称对应的业务线程组。优选方案中,所述消息传递方法还包括:检查所述记录的连接请求信息,剔除超时连接;所述剔除超时连接采用时间轮的方式来实现;具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。优选方案中,所述消息传递方法还包括:检测异常的连接,查找所述异常连接对应的业务线程组,销毁所述查找到的业务线程组。一种消息传递中间件,包括:全局事件管理模块、全局业务管理模块、全局连接管理模块,以及一个或多个业务线程组;其中,所述全局事件管理模块,用于根据配置文件中的业务信息生成增加或减少业务名称事件;所述全局业务管理模块,用于根据所述全局事件管理模块中增加或减少业务名称事件的请求新建或销毁业务线程组;所述全局连接管理模块,用于接收连接请求事件的信息,记录所述连接请求事件的信息,根据所述连接请求事件的信息,查找与所述连接关联的业务线程组;所述业务线程组,用于在处理所述业务线程组中的连接请求并发送所述处理结果至消息接收端。优选方案中,所述全局连接管理模块包括:连接接收记录模块和关联模块;所述连接接
收记录模块,用于接收客户端发来的新的连接请求事件,记录所述连接请求事件的信息;所述连接请求事件的信息包括:与所述连接对应的业务名称和连接地址;所述关联模块,用于根据所述连接接收记录模块中连接请求事件的信息,查找与所述连接关联的业务线程组。优选方案中,所述全局连接管理模块还包括:超时连接剔除模块,用于剔除超时连接;所述超时连接剔除模块采用时间轮的方式剔除超时连接,具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。优选方案中,所述全局连接管理模块还包括:连接异常检测模块,用于检测发生错误的连接,查找并销毁所述连接对应的业务线程组。优选方案中,所述业务线程组包括:局部事件管理模块和局部队列管理模块;所述局部事件管理模块,用于接收与所述业务相关联的事件;所述接收到的与所述业务相关联的事件包括:新建连接、连接可读或连接异常;所述局部队列管理模块,用于接收所述局部时间管理模块发来的连接可读任务存储至任务队列中,执行所述任务队列中的任务。由以上本申请实施例提供的技术方案可见,本申请实施例提供的消息传递方法和消息传递中间件可以将不同业务对应分配不同的线程组,使得每一业务对应的事件可以及时得到响应,可以提高业务事件的处理效率。进一步地,采用时间轮的方式剔除超时连接,可以避免对所有连接进行遍历检查,只需检查第一个桶里的连接即可,可以有效地减少了高并发对连接管理模块性能的消耗,提高了业务事件的处理效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请一种消息传递方法实施例的流程图;图2是本申请一种消息传递中间件实施例的模块图;图3是本申请一种消息传递中间件实施例中全局连接管理模块的模块图;图4是本申请一种消息传递中间件实施例中业务线程组的模块图。具体实施方式本申请实施例提供一种消息传递方法及消息传递中间件。为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都本文档来自技高网
...

【技术保护点】
一种消息传递方法,其特征在于,包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。

【技术特征摘要】
1.一种消息传递方法,其特征在于,包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。2.如权利要求1所述的一种消息传递方法,其特征在于,所述根据配置文件生成增加或减少业务名称事件,包括:当配置文件中新增一个业务名称时,对应生成一个增加业务名称事件;当配置文件中减少一个业务名称时,对应生成一个减少业务名称事件;所述配置文件中包含业务名称。3.如权利要求1所述的一种消息传递方法,其特征在于,所述根据增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组包括:当生成一个增加业务名称事件时,新建一个与所述增加的业务名称对应的业务线程组;当生成一个减少业务名称事件时,销毁与所述减少的业务名称对应的业务线程组。4.如权利要求1所述的一种消息传递方法,其特征在于,所述消息传递方法还包括:检查所述记录的连接请求信息,剔除超时连接;所述剔除超时连接采用时间轮的方式来实现;具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。5.如权利要求1所述的一种消息传递方法,其特征在于,所述消息传递方法还包括:检测异常的连接,查找所述异常连接对应的业务线程组,销毁所述查找到的业务线程组。6.一种消息传递中间件,其特征在于,包括:全局事件管理模块、全局业务管理模块、全局连接管理模块,以及一个或多个业务线程组;其中所述全局事件管理模块,用于根据配置文件中的业务信息生成增加或减...

【专利技术属性】
技术研发人员:胡铮唐晓晟郭海川陈汉
申请(专利权)人:无锡北邮感知技术产业研究院有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1