CN105991416A - 一种消息传递方法及消息传递中间件 - Google Patents
一种消息传递方法及消息传递中间件 Download PDFInfo
- Publication number
- CN105991416A CN105991416A CN201510082745.1A CN201510082745A CN105991416A CN 105991416 A CN105991416 A CN 105991416A CN 201510082745 A CN201510082745 A CN 201510082745A CN 105991416 A CN105991416 A CN 105991416A
- Authority
- CN
- China
- Prior art keywords
- business
- connection
- time
- event
- threads
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000007726 management method Methods 0.000 claims description 47
- 238000002716 delivery method Methods 0.000 claims description 24
- 230000003247 decreasing effect Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000006378 damage Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 2
- 230000006872 improvement Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种消息传递方法及消息传递中间件,所述方法包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。本申请实施例提供的一种消息传递方法及消息传递中间件,可以提高业务事件的处理效率。
Description
技术领域
本申请涉及计算机通信技术领域,特别涉及一种消息传递方法及消息传递中间件。
背景技术
随着计算机通信技术的发展,迅速增长的海量数据远远超过了单台计算机的处理能力,依靠分布式计算把海量的数据切成小块分交到多台计算机去处理的方法应运而生。
消息传递中间件在分布式系统中可以起到至关重要的作用。消息传递中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
现有的利用消息传递中间件传递消息的方法通常可以包括:消息传递中间件的连接管理模块接收到客户端发来的新的连接请求后,将所述连接请求发送至业务事件管理模块,所述业务事件管理模块根据所述连接请求的信息发送新建连接的请求至任务队列管理模块,所述任务队列管理模块在任务队列中添加新的任务,所述任务队列管理模块可以处理任务队列中的任务并向目标接收端发送消息。上述利用中间件穿了消息的方法在分布式系统中面对同时处理多种业务的消息时,采用单一线程或现场组的方式处理客户端所有业务事件。该单一线程或线程组可以处理来自不同业务的消息,并将消息分发到相应的消息接收端。同时,利用消息传递中间件传递消息的过程中还可以定期剔除超时连接。所述剔除超时连接的方法通常包括:保存与每一连接对应的最后时间,利用定时器每秒钟遍历一次所有连接,判断每一连接对应的最后时间与当前时间的时间差是否大于预设时间,若大于,剔除该最后时间对应的连接。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:现有的消息传递方法采用单一线程处理客户端所有业务事件,分布式系统中业务的数据量可能会比较大,单一线程或线程组的消息传递方法可能导致一些事件长时间内不能得到响应而被判断为超时,另外,剔除超时连接的过程中需要对每一连接进行遍历,也可能导致不能及时剔除超时连接,导致业务事件处理的效率低。
发明内容
本申请实施例的目的是提供一种消息传递方法及消息传递中间件,以提高业务事件的处理效率。
为解决上述技术问题,本申请实施例提供一种消息传递方法及消息传递中间件是这样实现的:
一种消息传递方法,包括:根据配置文件生成增加或减少业务名称事件;根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。
优选方案中,所述根据配置文件生成增加或减少业务名称事件,包括:当配置文件中新增一个业务名称时,对应生成一个增加业务名称事件;当配置文件中减少一个业务名称时,对应生成一个减少业务名称事件;所述配置文件中包含业务名称。
优选方案中,所述根据增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组包括:当生成一个增加业务名称事件时,新建一个与所述增加的业务名称对应的业务线程组;当生成一个减少业务名称事件时,销毁与所述减少的业务名称对应的业务线程组。
优选方案中,所述消息传递方法还包括:检查所述记录的连接请求信息,剔除超时连接;所述剔除超时连接采用时间轮的方式来实现;具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
优选方案中,所述消息传递方法还包括:检测异常的连接,查找所述异常连接对应的业务线程组,销毁所述查找到的业务线程组。
一种消息传递中间件,包括:全局事件管理模块、全局业务管理模块、全局连接管理模块,以及一个或多个业务线程组;其中,所述全局事件管理模块,用于根据配置文件中的业务信息生成增加或减少业务名称事件;所述全局业务管理模块,用于根据所述全局事件管理模块中增加或减少业务名称事件的请求新建或销毁业务线程组;所述全局连接管理模块,用于接收连接请求事件的信息,记录所述连接请求事件的信息,根据所述连接请求事件的信息,查找与所述连接关联的业务线程组;所述业务线程组,用于在处理所述业务线程组中的连接请求并发送所述处理结果至消息接收端。
优选方案中,所述全局连接管理模块包括:连接接收记录模块和关联模块;所述连接接收记录模块,用于接收客户端发来的新的连接请求事件,记录所述连接请求事件的信息;所述连接请求事件的信息包括:与所述连接对应的业务名称和连接地址;所述关联模块,用于根据所述连接接收记录模块中连接请求事件的信息,查找与所述连接关联的业务线程组。
优选方案中,所述全局连接管理模块还包括:超时连接剔除模块,用于剔除超时连接;所述超时连接剔除模块采用时间轮的方式剔除超时连接,具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
优选方案中,所述全局连接管理模块还包括:连接异常检测模块,用于检测发生错误的连接,查找并销毁所述连接对应的业务线程组。
优选方案中,所述业务线程组包括:局部事件管理模块和局部队列管理模块;所述局部事件管理模块,用于接收与所述业务相关联的事件;所述接收到的与所述业务相关联的事件包括:新建连接、连接可读或连接异常;所述局部队列管理模块,用于接收所述局部时间管理模块发来的连接可读任务存储至任务队列中,执行所述任务队列中的任务。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的消息传递方法和消息传递中间件可以将不同业务对应分配不同的线程组,使得每一业务对应的事件可以及时得到响应,可以提高业务事件的处理效率。进一步地,采用时间轮的方式剔除超时连接,可以避免对所有连接进行遍历检查,只需检查第一个桶里的连接即可,可以有效地减少了高并发对连接管理模块性能的消耗,提高了业务事件的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种消息传递方法实施例的流程图;
图2是本申请一种消息传递中间件实施例的模块图;
图3是本申请一种消息传递中间件实施例中全局连接管理模块的模块图;
图4是本申请一种消息传递中间件实施例中业务线程组的模块图。
具体实施方式
本申请实施例提供一种消息传递方法及消息传递中间件。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是本申请一种消息传递方法实施例的流程图。如图1所示,所示消息传递方法可以包括:
S101:根据配置文件生成增加或减少业务名称事件。
根据配置文件可以生成增加或减少业务名称事件。所述配置文件可以是预先设置的,也可以是实时获取的。所述配置文件中可以包含业务名称。初次根据配置文件生成增加或减少业务名称事件时,所述配置文件中包含的业务名称可以对应一个增加业务名称事件。当配置文件中新增一个业务名称时,可以对应生成一个增加业务名称事件。当配置文件中减少一个业务名称时,可以对应生成一个减少业务名称事件。
S102:根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组。
根据所述增加或减少业务名称事件可以新建或销毁与所述业务名称对应的业务线程组,具体可以包括:当生成一个增加业务名称事件时,可以新建一个与所述增加的业务名称对应的业务线程组;当生成一个减少业务名称事件时,可以销毁与所述减少的业务名称对应的业务线程组。
S103:接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组。
可以接收客户端发来的连接请求事件,记录所述连接请求事件的信息。所述连接请求事件的信息可以包括与所述连接对应的业务名称、连接地址。
根据所述连接请求事件的信息可以确定所述连接对应的第一业务线程组,具体可以包括:根据所述连接请求事件的信息中与所述连接对应的业务名称,查找所述业务名称对应的业务线程组,所述查找到的业务线程组可以确定为第一业务线程组。
S104:在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。
在所述第一业务线程组内可以处理所述连接请求并发送所述处理结果至消息接收端。所述第一业务线程组处理连接请求具体可以包括:采用Linux内核2.6的Epoll监听第一业务线程组中是否接收到如下三类事件:连接可读、连接可写或连接异常。若所述接收到的事件为新建连接,可以接收所述连接,为所述连接生成连接可读监听任务;若所述接收到的事件为连接可读,可以发送描述符句柄至任务队列;若所述接收到的事件为连接异常,则可以删除所述连接的连接可读监听任务。依次执行所述任务队列中的任务。
在另一实施例中,所述消息传递方法还可以包括:检查所述记录的连接请求信息,剔除超时连接。
所述检查记录的连接请求信息,剔除超时连接,可以采用时间轮的方式来实现。具体可以包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,可以将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接可以存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮可以断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
在另一实施例中,所述消息传递方法还可以包括:检测异常的连接,查找所述异常连接对应的业务线程组,销毁所述查找到的业务线程组。
上述实施例公开的消息传递方法,可以将不同业务对应分配不同的线程组,新的连接可分配至与所述连接对应的线程组进行处理,使得每一业务对应的事件可以及时得到响应,可以提高业务事件的处理效率。进一步地,采用时间轮的方式剔除超时连接,可以避免对所有连接进行遍历检查,只需检查第一个桶里的连接即可,可以有效地减少了高并发对连接管理模块性能的消耗,提高了业务事件的处理效率。
图2是本申请一种消息传递中间件实施例的模块图。如图2所示,所示消息传递中间件可以包括:全局事件管理模块100、全局业务管理模块200、全局连接管理模块300,以及一个或多个业务线程组400。
所述全局事件管理模块100,可以用于根据配置文件中的业务信息生成增加或减少业务名称事件。
所述配置文件可以是预先设置的,也可以是实时获取的。所述配置文件中可以包含业务名称。初次运行所述消息传递中间件时,所述配置文件中包含的业务名称可以对应一个增加业务名称事件。当配置文件中新增一个业务名称时,可以对应生成一个增加业务名称事件。当配置文件中减少一个业务名称时,可以对应生成一个减少业务名称事件。
所述全局业务管理模块200,可以用于根据所述全局事件管理模块100中增加或减少业务名称事件的请求新建或销毁业务线程组400。
当所述全局事件管理模块100发来的是增加业务名称事件的请求时,所述全局业务管理模块200可以新建一个与所述增加的业务名称对应的业务线程组400;当所述全局事件管理模块100发来的是减少业务名称事件的请求时,所述全局业务管理模块200可以销毁与所述减少的业务名称对应的业务线程组400。
所述全局连接管理模块300,可以用于接收连接请求事件的信息,记录所述连接请求事件的信息,根据所述连接请求事件的信息,查找与所述连接关联的业务线程组400。所述全局连接管理模块300,还可以用于剔除超时连接。所述连接请求事件的信息可以包括与所述连接对应的业务名称、连接地址。
所述业务线程组400,可以用于在处理所述业务线程组中的连接请求并发送所述处理结果至消息接收端。
图3是本申请一种消息传递中间件实施例中全局连接管理模块的模块图。如图3所示,所述全局连接管理模块300,可以包括:连接接收记录模块301和关联模块302。
所述连接接收记录模块301,可以用于接收客户端发来的新的连接请求事件,记录所述连接请求事件的信息。所述连接请求事件的信息可以包括:与所述连接对应的业务名称和连接地址。
所述关联模块302,可以用于根据所述连接接收记录模块301中连接请求事件的信息,查找与所述连接关联的业务线程组400。
在另一个实施例中,所述全局连接管理模块300还可以包括:超时连接剔除模块303。所述超时连接剔除模块303,可以用于剔除超时连接。所述超时连接剔除模块303可以采用时间轮的方式剔除超时连接,具体可以包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,可以将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接可以存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮可以断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
在另一个实施例中,所述全局连接管理模块300还可以包括:连接异常检测模块304。所述连接异常检测模块304可以用于检测发生错误的连接,可以查找并销毁所述连接对应的业务线程组。
图4是本申请一种消息传递中间件实施例中业务线程组的模块图。如图4所示,所述业务线程组400,可以包括:局部事件管理模块401和局部队列管理模块402。
所述局部事件管理模块401,可以用于接收与所述业务相关联的事件。所述接收到的与所述业务相关联的事件可以包括:新建连接、连接可读或连接异常。
若所述接收到的事件为新建连接,可以接收所述连接,为所述连接生成连接可读监听任务;若所述接收到的事件为连接可读,可以发送描述符句柄至任务队列;若所述接收到的事件为连接异常,则可以删除所述连接的连接可读监听任务。
所述局部队列管理模块402,可以用于接收所述局部时间管理模块401发来的连接可读任务存储至任务队列中,执行所述任务队列中的任务。
上述实施例公开的一种消息传递中间件,可以利用全局事件管理模块将不同业务对应分配不同的线程组,使得每一业务对应的事件可以及时得到响应,可以提高业务事件的处理效率。进一步地,本申请实施例公开的消息传递中间件中,超时连接剔除模块采用时间轮的方式剔除超时连接,可以避免对所有连接进行遍历检查,只需检查第一个桶里的连接即可,可以有效地减少了高并发对连接管理模块性能的消耗,提高了业务事件的处理效率。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit HardwareDescription Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (10)
1.一种消息传递方法,其特征在于,包括:
根据配置文件生成增加或减少业务名称事件;
根据所述增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组;
接收客户端发来的连接请求事件,记录所述连接请求事件的信息,根据所述连接请求事件的信息确定所述连接对应的第一业务线程组;
在所述第一业务线程组中处理所述连接请求并发送所述处理结果至消息接收端。
2.如权利要求1所述的一种消息传递方法,其特征在于,所述根据配置文件生成增加或减少业务名称事件,包括:当配置文件中新增一个业务名称时,对应生成一个增加业务名称事件;当配置文件中减少一个业务名称时,对应生成一个减少业务名称事件;所述配置文件中包含业务名称。
3.如权利要求1所述的一种消息传递方法,其特征在于,所述根据增加或减少业务名称事件新建或销毁与所述业务名称对应的业务线程组包括:当生成一个增加业务名称事件时,新建一个与所述增加的业务名称对应的业务线程组;当生成一个减少业务名称事件时,销毁与所述减少的业务名称对应的业务线程组。
4.如权利要求1所述的一种消息传递方法,其特征在于,所述消息传递方法还包括:检查所述记录的连接请求信息,剔除超时连接;
所述剔除超时连接采用时间轮的方式来实现;具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
5.如权利要求1所述的一种消息传递方法,其特征在于,所述消息传递方法还包括:检测异常的连接,查找所述异常连接对应的业务线程组,销毁所述查找到的业务线程组。
6.一种消息传递中间件,其特征在于,包括:全局事件管理模块、全局业务管理模块、全局连接管理模块,以及一个或多个业务线程组;其中
所述全局事件管理模块,用于根据配置文件中的业务信息生成增加或减少业务名称事件;
所述全局业务管理模块,用于根据所述全局事件管理模块中增加或减少业务名称事件的请求新建或销毁业务线程组;
所述全局连接管理模块,用于接收连接请求事件的信息,记录所述连接请求事件的信息,根据所述连接请求事件的信息,查找与所述连接关联的业务线程组;
所述业务线程组,用于在处理所述业务线程组中的连接请求并发送所述处理结果至消息接收端。
7.如权利要求6所述的一种消息传递中间件,其特征在于,所述全局连接管理模块包括:连接接收记录模块和关联模块;
所述连接接收记录模块,用于接收客户端发来的新的连接请求事件,记录所述连接请求事件的信息;所述连接请求事件的信息包括:与所述连接对应的业务名称和连接地址;
所述关联模块,用于根据所述连接接收记录模块中连接请求事件的信息,查找与所述连接关联的业务线程组。
8.如权利要求7所述的一种消息传递中间件,其特征在于,所述全局连接管理模块还包括:超时连接剔除模块,用于剔除超时连接;
所述超时连接剔除模块采用时间轮的方式剔除超时连接,具体包括:按照消息的超时时间范围,建立由若干桶组成的循环队列,将即将超时的连接根据超时的时间按序存放在循环队列中,将最先超时的连接存在队列的队头的桶内,并依次类推,超时时间相同的连接存放在同一个桶内,队尾的桶内始终存放最近的连接;每经过一秒钟,时间轮断开队头桶内的连接,即剔除桶内的连接,同时将此桶移动到队列尾端。
9.如权利要求7所述的一种消息传递中间件,其特征在于,所述全局连接管理模块还包括:连接异常检测模块,用于检测发生错误的连接,查找并销毁所述连接对应的业务线程组。
10.如权利要求6所述的一种消息传递中间件,其特征在于,所述业务线程组包括:局部事件管理模块和局部队列管理模块;
所述局部事件管理模块,用于接收与所述业务相关联的事件;所述接收到的与所述业务相关联的事件包括:新建连接、连接可读或连接异常;
所述局部队列管理模块,用于接收所述局部时间管理模块发来的连接可读任务存储至任务队列中,执行所述任务队列中的任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510082745.1A CN105991416B (zh) | 2015-02-15 | 2015-02-15 | 一种消息传递方法及消息传递中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510082745.1A CN105991416B (zh) | 2015-02-15 | 2015-02-15 | 一种消息传递方法及消息传递中间件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991416A true CN105991416A (zh) | 2016-10-05 |
CN105991416B CN105991416B (zh) | 2019-05-31 |
Family
ID=57041436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510082745.1A Expired - Fee Related CN105991416B (zh) | 2015-02-15 | 2015-02-15 | 一种消息传递方法及消息传递中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105991416B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
CN110300153A (zh) * | 2019-05-27 | 2019-10-01 | 北京百度网讯科技有限公司 | 与MySQL建立链接的方法、装置、代理服务器及存储介质 |
WO2020259227A1 (zh) * | 2019-06-28 | 2020-12-30 | Oppo广东移动通信有限公司 | 线程任务通信系统、方法及相关产品 |
CN112689169A (zh) * | 2020-12-21 | 2021-04-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 业务播放方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874538A (zh) * | 2005-07-20 | 2006-12-06 | 华为技术有限公司 | 一种呼叫事件并发处理方法 |
WO2008060085A1 (en) * | 2006-11-13 | 2008-05-22 | Samsung Electronics Co., Ltd. | Method and system for managing message threads in converged ip messaging service |
WO2011012157A1 (en) * | 2009-07-28 | 2011-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and method for processing events in a telecommunications network |
CN101969391A (zh) * | 2010-10-27 | 2011-02-09 | 北京邮电大学 | 一种支持融合网络业务的云平台及其工作方法 |
US20110106941A1 (en) * | 2009-10-30 | 2011-05-05 | International Business Machines Corporation | Processing Network Events |
CN103092682A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 异步网络应用程序处理方法 |
-
2015
- 2015-02-15 CN CN201510082745.1A patent/CN105991416B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874538A (zh) * | 2005-07-20 | 2006-12-06 | 华为技术有限公司 | 一种呼叫事件并发处理方法 |
WO2008060085A1 (en) * | 2006-11-13 | 2008-05-22 | Samsung Electronics Co., Ltd. | Method and system for managing message threads in converged ip messaging service |
WO2011012157A1 (en) * | 2009-07-28 | 2011-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and method for processing events in a telecommunications network |
US20110106941A1 (en) * | 2009-10-30 | 2011-05-05 | International Business Machines Corporation | Processing Network Events |
CN101969391A (zh) * | 2010-10-27 | 2011-02-09 | 北京邮电大学 | 一种支持融合网络业务的云平台及其工作方法 |
CN103092682A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 异步网络应用程序处理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
US11038783B2 (en) | 2019-02-02 | 2021-06-15 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for managing network connection, and storage medium |
CN110300153A (zh) * | 2019-05-27 | 2019-10-01 | 北京百度网讯科技有限公司 | 与MySQL建立链接的方法、装置、代理服务器及存储介质 |
CN110300153B (zh) * | 2019-05-27 | 2021-11-30 | 北京百度网讯科技有限公司 | 与MySQL建立链接的方法、装置、代理服务器及存储介质 |
WO2020259227A1 (zh) * | 2019-06-28 | 2020-12-30 | Oppo广东移动通信有限公司 | 线程任务通信系统、方法及相关产品 |
CN112689169A (zh) * | 2020-12-21 | 2021-04-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 业务播放方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105991416B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198562B2 (en) | Detecting and tracking virtual containers | |
US9424160B2 (en) | Detection of data flow bottlenecks and disruptions based on operator timing profiles in a parallel processing environment | |
US8140591B2 (en) | Enabling workflow awareness within a business process management (BPM) system | |
CN107395665A (zh) | 一种区块链业务受理及业务共识方法及装置 | |
US20180115468A1 (en) | Hybrid cloud broker with static and dynamic capability matching | |
EP3346379A1 (en) | Database management system with dynamic allocation of database requests | |
US10242064B2 (en) | Suppressing stream functionality to expedite preferred data | |
US10706027B2 (en) | Database management system with dynamic allocation of database requests | |
CN105871959A (zh) | 一种消息传递的方法、系统和装置 | |
CN105991416A (zh) | 一种消息传递方法及消息传递中间件 | |
TW201913522A (zh) | 風險特徵篩選、描述報文產生方法、裝置以及電子設備 | |
CN108270662A (zh) | 一种消息分发方法、装置及设备 | |
US9501377B2 (en) | Generating and implementing data integration job execution design recommendations | |
CN110389989A (zh) | 一种数据处理方法、装置及设备 | |
CN110022227A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN107748989A (zh) | 一种虚拟卡的开卡方法、系统和支付系统、发卡系统 | |
US10664376B2 (en) | Hierarchical process group management | |
CN108255620A (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
CN108762913A (zh) | 服务处理方法及装置 | |
CN110046187A (zh) | 数据处理系统、方法及装置 | |
US9141927B2 (en) | Determining costs for workflows | |
CN109886804A (zh) | 一种任务处理方法及装置 | |
US20180225325A1 (en) | Application resiliency management using a database driver | |
CN108628931A (zh) | 一种数据驱动业务的方法、装置以及设备 | |
US9952773B2 (en) | Determining a cause for low disk space with respect to a logical disk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190531 |
|
CF01 | Termination of patent right due to non-payment of annual fee |