消息处理方法和装置的制造方法_3

文档序号:9710749阅读:来源:国知局
控制服务器调用进程向消息队列下发消息的数量,以控制控制服务调用进程所在终端的流量,同时控制服务调用进程向消息队列下发消息的速度,避免一次性向消息队列下发过多消息。
[0080]本发明进一步提供一种消息处理装置。
[0081]参照图6,图6为本发明消息处理装置第一实施例的功能模块示意图。
[0082]需要强调的是,对本领域的技术人员来说,图6所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图6所示的消息处理装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解消息处理装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。。
[0083]本实施例提出一种消息处理装置,所述消息处理装置包括:
[0084]获取模块10,用于在向服务提供进程推送消息时,获取所述服务提供进程当前的第一消息确认窗口值;
[0085]在本实施例中,该第一消息确认窗口值得初始值可根据服务提供进程所在终端的负载能力进行设定,该第一消息确认窗口值可由用户进行人为设定,例如将第一消息确认窗口值设为12。
[0086]推送模块20,用于在当前的所述第一消息确认窗口值大于零时,根据所述第一消息确认窗口值向服务提供进程推送消息队列中的消息,其中,向所述服务提供进程推送消息的数量值小于或等于所述第一消息确认窗口值;
[0087]处理模块30,用于对所述第一消息确认窗口值减去推送消息的数量值,并在接收到服务提供进程反馈的确认信息时,对所述第一消息确认窗口值增加收到的所述确认消息的数量。
[0088]在第一消息确认窗口值大于零时,说明还可向服务提供进程推送消息,例如当前的第一消息确认窗口值为6时,则还可向服务提供进程推送6条消息,则向服务提供进程推送消息的数量必须小于或等于6,以保证服务提供进程所在终端不会超负荷,例如向服务调用进程推送了3条消息,且当前的第一消息确认窗口值为6,则对当前的第一消息确认窗口值减去推送消息的数量即第一消息确认窗口值变为3,并继续接收服务提供进程反馈的确认信息,若接受到一条确认信息则将第一消息确认窗口值加1,则当前的第一消息确认窗口值变为4。
[0089]如图3所示,消息队列当前的第一消息确认窗口值为9,预设的最大第一消息确认窗口值为12,则可认为服务提供进程所在的终端还有3条消息正在处理中,而有9条消息已经处理完成并回复了确认信息,而消息队列中有3条已下发消息未反馈确认消息。
[0090]可以理解的是,所述消息处理装置还包括:输出模块,用于在当前的所述第一消息确认窗口值等于零且持续预设时长时,输出故障提示信息。在当前的所述第一消息确认窗口值等于零可认为服务提供进程调用的信息均未反馈确认信息,则服务提供进程所在的终端可能出现故障,则需要输出故障提示信息,该故障提示信息可发送至预设终端,也可输出至消息队列所在的服务器连接的显示终端。
[0091]由于用户可预先设置第一消息确认窗口值,即所述消息处理装置还包括:关联模块,用于建立各个服务提供进程对应的消息队列以及消息队列对应的第一消息确认窗口值,并建立各个消息队列与其对应的服务提供进程的关联。
[0092]本实施例提出的消息处理装置,在向服务提供进程推送消息时,获取当前的第一消息确认窗口值,并在在当前的所述第一消息确认窗口值大于零时,根据所述第一消息确认窗口值向服务提供进程推送消息队列中的消息,其中,向所述服务提供进程推送消息的数量值小于或等于所述第一消息确认窗口值,对所述第一消息确认窗口值减去推送消息的数量值,并在接收到服务提供进程反馈的确认信息时,对所述第一消息确认窗口值增加收到的所述确认消息的数量,通过控制第一消息确认窗口值的数量控制服务提供进程可调用消息的数量以控制服务提供进程所在终端的流量,该流量控制方案不仅控制发送消息的数量,同时,还控制服务提供进程消费消息的数量,避免服务提供进程所在终端运行过多线程,避免终端超载运行。
[0093]进一步地,参照图7基于第一实施例提出本发明消息处理装置第二实施例,在本实施例中,所述消息处理装置还包括:
[0094]所述获取模块10,还用于在消息队列接收到服务调用进程下发的消息时,获取所述服务调用进程对应的消息队列中当前可添加消息的数量;
[0095]添加模块40,用于根据所述可添加消息的数量向所述消息队列中添加消息。
[0096]在本实施例中,消息中间件接收服务调用进程下发的消息。由于每个服务调用进程对应的消息队列有多个,则可确认各个消息队列当前可添加消息的数量,根据各个消息队列当前可添加消息的数量向消息队列中添加消息。
[0097]进一步地,参照图8基于第一或第二实施例提出本发明消息处理装置第三实施例,在本实施例中,所述消息处理装置还包括:
[0098]标记模块50,用于在所述推送模块向所述服务提供进程推送消息时,向已推送消息添加未确认标记,以及在接收到服务提供进程反馈的确认信息时,将所述确认消息对应的已推送消息的未确认标记修改为确认标记。
[0099]向已推送消息添加的未确认标记可为unack,已确认标记可为uck,通过添加已确认标记以及未确认标记,便于识别已确认消息以及未确认消息,便于在消息处理时长较长时,提示故障,例如,在有消息标记为未确认标记的时长超过预设时长时,提示人工处理该消息。
[0100]进一步地,参照图9基于第一至第三任一实施例提出本发明消息处理装置第四实施例,在本实施例中,所述消息处理装置还包括:
[0101]所述获取模块10,还用于在向消息队列下发消息时,获取所述服务调用进程当前的第二消息确认窗口值;
[0102]在本实施例中,可针对每个服务调用进程设置消息确认窗口,该第二消息确认窗口值的初始值可根据服务器调用进程所在终端的负载能力以及通信能力进行设定,该第二消息确认窗口初始值可由用户进行人为设定,例如将第二消息确认窗口初始值设为255。
[0103]消息下发模块60,用于在当前的所述第二消息确认窗口值大于零时,控制所述服务调用进程根据所述第二消息确认窗口值向消息队列下发消息,其中,向消息队列下发消息的数量值小于或等于所述第二消息确认窗口值;
[0104]所述处理模块30,还用于对所述第二消息确认窗口值减去推送消息的数量值,并在接收到消息队列基于已推送消息的反馈的确认信息时,对所述第二消息确认窗口值增加收到的所述确认消息的数量。
[0105]在第二消息确认窗口值大于零时,说明还可向服务提供进程推送消息,例如当前的第二消息确认窗口值为150时,则还可向服务提供进程推送150条消息,则向消息队列下发消息的数量必须小于或等于150,以保证服务提供进程所在终端不会超负荷,例如向消息队列下发了 15条消息,且当前的第二消息确认窗口值为150,则对当前的第二消息确认窗口值减去推送消息的数量即第二消息确认窗口值变为135,并继续接收消息队列反馈的确认信息,若接受到一条确认信息则将第二消息确认窗口值加1,则当前的第二消息确认窗口值变为136。
[010
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1