CN104426800A - 用于在对等通信网络中管理消息队列的系统和方法 - Google Patents
用于在对等通信网络中管理消息队列的系统和方法 Download PDFInfo
- Publication number
- CN104426800A CN104426800A CN201410416091.7A CN201410416091A CN104426800A CN 104426800 A CN104426800 A CN 104426800A CN 201410416091 A CN201410416091 A CN 201410416091A CN 104426800 A CN104426800 A CN 104426800A
- Authority
- CN
- China
- Prior art keywords
- queue
- message queue
- server
- message
- peers include
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及用于在对等通信网络中管理消息队列的系统和方法。公开了一种方法和系统,用于在对等通信网络中管理一个或多个消息队列。该系统包括初始化模块、队列管理器、负载平衡模块、队列监控器以及故障检测和处理模块。初始化模块通过消息队列初始化一个或多个对等端之间的通信信道。队列管理器被配置为通过统一通信系统管理对等端之间的通信。负载平衡模块在用于事务的消息队列之间均匀地分配负载。队列监控器被配置为监控与服务和与服务相关的转码相对应的消息队列。故障检测和处理模块被配置为在统一通信系统中检测服务器的状态并且将在消息队列中的消息动态地路由至下一个可用服务器。
Description
技术领域
在本文中描述的主题总体上涉及通过统一通信系统(unifiedcommunication system)的对等通信(peer-to-peer communication),更具体而言,用于在对等通信网络中管理消息队列。
背景技术
在启用网络的通信系统的时期,统一通信系统在企业级应用(enterprise application)之间提供完整和灵活的通信模式。统一通信系统与队列消息一起是一种在企业级应用之间的有效且可靠的通信方式。队列管理器方便进行队列的管理,以便在对等通信网络中传输和接收消息。为了执行可靠的通信,需要监控消息队列以检测通信网络中的误差或故障。
存在用于管理和监控消息队列以及用于检测其中的故障和误差的各种方法。然而,现有方法仅仅用于检测消息队列的传输状态,从而不能整体上监控消息队列。
此外,现有方法并非轻量型的,并且在超负载的情况下不能有效地提供队列的负载管理。而且,现有方法不能动态地监控用于在对等通信网络中进行通信的资源的性能。
发明内容
提供该发明内容,以介绍与用于在对等通信网络中管理一个或多个消息队列的系统和方法相关的方面,并且下面在详细描述中,进一步描述这些方面。该发明内容并非旨在识别所要求的主题的基本特征,也并非旨在用于确定或限制所要求的主题的范围。
在一个实施中,公开了一种用于在对等通信网络的统一通信系统中管理一个或多个消息队列的系统。该系统包括处理器;以及存储器,耦接至处理器,其中,处理器能够执行存储在存储器中的多个模块,并且其中,多个模块包括:初始化(initialization)模块,被配置为通过消息队列初始化(initiate,启动)一个或多个对等端(peer)之间的通信信道;队列管理器,被配置为通过统一通信系统管理对等端之间的通信,其中,队列管理器使对等端能够识别消息队列以发送和接收消息,队列管理器进一步包括:负载平衡模块,被配置为基于预定义条件,在统一通信系统中的用于事务(transaction)的消息队列之间均匀地分配负载;队列监控器,被配置为监控与服务和与服务相关的转码(transcode)相对应的消息队列,队列监控器进一步包括:故障检测和处理模块,被配置为在统一通信系统中检测服务器的状态,其中,故障检测和处理模块将消息队列中的消息动态地路由至下一个可用服务器。
在一个实施中,公开了一种用于在对等通信网络中管理一个或多个消息队列的方法。方法包括:通过消息队列初始化一个或多个对等端之间的通信信道;通过统一通信系统管理对等端之间的通信,并且使对等端能够识别消息队列以发送和接收消息,管理进一步包括:基于预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载;监控与服务和与服务相关的转码相对应的消息队列,监控进一步包括:在统一通信系统中检测服务器的状态,其中,将在消息队列中的消息动态地路由至下一个可用服务器,其中,利用存储在存储器中的程序指令通过处理器来执行管理、分配、监控以及检测。
在一个实施中,公开一种计算机程序产品,具有在其上包含的用于在对等通信网络中管理一个或多个消息队列的计算机程序,计算机程序产品包括:用于通过消息队列初始在一个或多个对等端之间的通信信道的程序代码;用于通过统一通信系统管理对等端之间的通信并且使对等端能够识别消息队列以发送和接收消息的程序代码,管理进一步包括:用于基于预定义条件在统一通信系统中的用于事务的消息队列之间均匀地分配负载的程序代码;用于监控与服务和与服务相关的转码相对应的消息队列的程序代码,监控进一步包括:用于在统一通信系统中检测服务器的状态的程序代码,其中,将在消息队列中的消息动态地路由给下一个可用服务器。
附图说明
参照附图详细地描述该说明。在附图中,参考标号最左边的数字表示参考数字首先出现的示图。在整个示图中,相同的标号用于指代相似的特征和元件。
图1示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消息队列的系统的网络实施。
图2示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消息队列的系统。
图3示出了根据本主题的实施方式的负载平衡模块的工作。
图4示出了根据本主题的实施方式的故障检测和处理模块的工作。
图5示出了根据本主题的实施方式执行listener_callback函数的方法。
图6示出了根据本主题的实施方式执行app_con_callback函数的方法。
图7示出了根据本主题的实施方式的用于执行主线程的方法。
图8示出了根据本主题的实施方式的用于执行转码线程的方法。
图9示出了根据本主题的实施方式的用于执行监视器线程(watcherthread)的方法。
图10示出了根据本主题的实施方式执行watcher_callback函数的方法。
图11示出了根据本主题的实施方式执行load_balance_queue函数的方法。
图12示出了根据本主题的实施方式的一种执行manage_queue函数的方法。
图13示出了根据本主题的实施方式执行reset_queue_parameter函数的方法。
图14示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消息队列的方法。
图15示出了根据本主题的实施方式的主线程、转码线程以及监视器线程的整合的表示。
图16示出了根据本主题的实施方式的通过队列管理器的在多个实体之间的数据和消息流动。
具体实施方式
印度专利申请1985/MUM/2010涉及用于在网络中的至少一个发送装置与至少一个接收装置之间进行对等通信的统一通信方法和统一通信系统,该案的全部内容被结合于本文中。而且,印度专利申请302/MUM/2012的全部内容被结合于本文中。
描述了用于在对等通信网络中管理一个或多个消息队列的系统和方法。为了管理一个或多个消息队列,首先,通过在会话上读取消息,在一个或多个对等端之间初始化通信信道。通过能够允许对等识别消息队列以发送和接收消息,从而管理对等端之间初始化的通信,其中,通过统一通信系统,初始化该通信。而且,管理还包括进一步基于预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载。
而且,监控与服务和与服务相关的转码相对应的消息队列。消息队列的监控还包括在统一通信系统中检测服务器的状态并且将在消息队列中的消息动态地路由给下一个可用的服务器。
虽然在任何数量的不同计算系统、环境和/或配置中,可实现用于在对等通信网络中管理一个或多个消息队列的所描述的系统和方法的各方面,但是在以下示例性系统的背景下描述了这些实施方式。
现在参照图1,根据本主题的实施方式,示出了用于在对等通信网络中管理一个或多个消息队列的系统102的网络实施100。在一个实施方式中,描述了用于在对等通信网络中管理一个或多个消息队列的系统102。首先,通过消息队列初始化对等端之间通信信道。由在对等端之间的客户端装置104通过统一通信系统初始化通信信道。通过使对等端能够识别消息队列来管理该通信以便发送和接收消息。而且,该管理还包括进一步基于预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载。此外,监控与服务和与服务相关的转码相对应的消息队列。消息队列的监控还包括检测统一通信系统中的服务器的状态并且将在消息队列中的消息动态地路由给下一个可用服务器。
虽然考虑通过在服务器上实施的系统102来说明本主题,但可理解的是,还可在各种计算系统(例如,膝上型电脑、台式电脑、笔记本、工作站、主机电脑、服务器、网络服务器等)中实施该系统102。将要理解的是,多个用户可通过在后文中的一个或多个用户装置104-1、104-2…104-N(统称为用户装置104)或存在于用户装置104上的应用程序访问系统102。用户装置104的实例可包括但不限于便携式电脑、个人数字助理、手持式装置以及工作站。用户装置104通过网络106以通信的方式耦接至系统102。
在一个实施中,网络106可以是无线网络、有线网络或其组合。网络106可作为诸如内联网、局域网(LAN)、广域网(WAN)、互联网等的不同类型的网络中的一种来实施。网络106可以是专用网络或共享网络。共享网络表示使用各种协议(例如,超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等)来彼此进行通信的不同类型的网络的结合。而且,网络106可包括各种网络装置,其包括路由器、桥接器、服务器、计算装置、存储装置等。
现在,参照图2,根据本主题的实施方式示出了系统102。在一个实施方式中,系统102可包括至少一个处理器202、输入/输出(I/O)界面(interface,接口)204以及存储器206。至少一个处理器202被实施为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或根据操作指令操纵信号的任何装置。在其他功能之中,至少一个处理器202被配置为提取和执行存储在存储器206内的计算机可读指令。
I/O界面204可包括各种软件和硬件界面,例如,网页界面、图形用户界面等。I/O界面204可允许系统102直接或通过客户端装置104与用户交互。此外,I/O界面204可使系统102与其他计算装置(例如,网页服务器和外部数据服务器(未显示))进行通信。I/O界面204可在各种网络和协议类型(包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝或卫星))内促进多个通信。I/O界面204可包括一个或多个端口,用于使多个装置彼此连接或者与另一个服务器连接。
存储器206可包括在本领域中已知的任何计算机可读介质,例如,包括易失性存储器(例如,静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM))和/或非易失性存储器(例如,只读存储器(ROM)、可擦可编程ROM、闪速存储器、硬盘、光盘以及磁带)。存储器206可包括模块208和数据210。
模块208包括例行程序、程序、目标、元件、数据结构等,其执行特定任务或实现特定的抽象数据类型。在一个实施中,模块208可包括初始化模块212、队列管理器214、负载平衡模块216、队列监控器218、故障检测和处理模块220以及其他模块222。其他模块222可包括补充系统102的应用和功能的程序或编码指令。
除了其他作用以外,数据210被用作用于存储由一个或多个模块208处理、接收以及生成的数据的存储库。数据210还可包括系统数据库224以及其他数据226。其他数据226可包括由于执行在其他模块222中的一个或多个模块从而生成的数据。
在一个实施中,首先,用户可使用客户端装置104来通过I/O界面204访问系统102。用户可使用I/O界面204来显示这些,以便使用系统102。可在图3、图4、图5、图6、图7、图8、图9、图10、图11、图12、图13、图15以及图16中详细地说明该系统102的工作。系统102可用于在对等通信网络中管理一个或多个消息队列。为了管理一个或多个消息队列,首先,通过消息队列,初始化对等端之间的通信信道。具体而言,在本实施中,在对等端之间的通信由初始化模块212通过客户端装置104初始化。通过在会话上读取消息来将通信初始化。会话表示在两个对等端之间的通信处理。借助于一个特定实例,该会话与在传输层中的TCP连接相似。通过会话在每个对等端之间发生通信,并且可在对等端之间建立一个或多个会话。
对等端可包括在客户端服务器关系的情况下的客户端、服务器,如果不存在客户端服务器时的发送器、接收器中的至少一个或其组合。服务名称是用于识别对等端或服务的公共名称。通过一个特定实例,“银行业务(banking)”是服务名称。转码是识别从服务中请求的事务的类型的代码。每个服务具有与其相关的至少一个转码。例如,可将消息发送给具有“100”转码的“银行业务”服务,其中,“100”可用于识别在“银行业务”服务内的“存款”事务。
在一个实施中,通过统一消息通信库实施对等端之间的通信。即使改变环境,统一消息通信库(UMC库)仍确保企业级应用继续传输其核心功能。UMC库阻止企业级应用改变环境,同时适合于改变操作环境。UMC库提供用于发送和接收消息的机构。UMC库使用通过操作系统或第三方中间件可用的一个通信机构来实现通信要求。企业级应用获得一个界面并且UMC库保护企业级应用远离基底通信机构的复杂性。
在UMC配置文件中指定实际使用的通信机构及其细节,并且由企业级应用管理员进行控制。UMC配置文件可具有XML格式。通过反应UMC配置文件上的变化可实现企业级应用的部署配置的任何变化。根据企业级应用所需要的服务质量以及通信机构的可用性,通过设置UMC配置文件,企业级应用管理员可选择通信机构。
在一个实施中,系统102进一步包括队列管理器214,该队列管理器214被配置为通过统一通信系统管理在对等端之间的通信,其中,队列管理器214使对等端能够识别消息队列以发送和接收消息。队列管理器102被配置为用于每个服务。通过一个特定实例,通过设立队列管理器214来完成服务的配置。服务器与队列管理器214进行通信以从队列中获得用于读取消息队列。将消息发送给服务器的客户端还与队列管理器214接触以获得合适的队列。
队列管理器214进一步包括负载平衡模块216,该负载平衡模块216被配置为基于预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载。预定义条件限定用于初始化均匀地进行消息队列的负载的分配的阈值。图3示出了负载平衡模块216的工作,其中,存在三个队列,这些队列在时间T上具有作为n1、n2以及n3的条目数。队列管理器214以速率w旋转,即,在每个时间间隔t1*n1之后,其中,该时间间隔等于dT。在每个时间间隔(即,dT)之后,队列管理器214使队列负载平衡。因此,在时间T+dT处,针对每个队列的队列长度是(n1+n2+n3)/3。图3示出了了在队列之间的负载分配,其中,队列n3比n1和n2装载得更多,将来自n3的负载分配到n2和n1中。当中间值与最大值之间的差值大于所限定的阈值时,负载平衡模块216在队列之间平衡负载。
系统102进一步包括队列监控器218,该队列监控器218被配置为监控与服务和与由队列管理器214管理的服务相关的转码相对应的消息队列。队列监控器218进一步包括故障检测和处理模块220,该故障检测和处理模块220被配置为在统一通信系统中检测服务器的状态,其中,该故障检测和处理模块220将在消息队列中的消息动态地路由给下一个可用服务器。队列监控器218进一步将存储器映射文件用于针对每个时间间隔确定附接至消息队列的服务器、写入消息队列的消息以及从消息队列中读取的消息的数量,其中,服务器可以是应用服务器或处理。队列监控器218还可逐个转码地确定队列、队列名称、队列中的消息数量、从队列读取的服务器的数量、在队列上写入的客户端应用的数量以及服务器读取队列的速率。根据该速率、服务器的数量和队列的深度可采取适当的行动,以根据相应的应用来实现高性能。
图4示出了故障检测和处理模块220的工作。如图4中所示,即使服务器1发生故障,将在队列中的消息路由给其他可用服务器,即,服务器2或服务器3。如果通信或处理陷入事务中,那么可发生故障,或者如果杀灭线程,那么线程锁死。如果用于任何线程的服务器不起作用,那么故障检测和处理模块220可添加另一个服务器。而且,如果队列的深度完整,则可通过故障检测和处理模块220添加服务器。
UMC配置文件可用于配置系统102的负载平衡和故障检测以及动态路由特征。在系统102的一个示例性实施方式中,可如下配置UMC配置文件。
配置文件:
其中,‘num_sample_for_loadbalancing’指定用于负载平衡任务的样品的数量,‘sleep_time_between_samples’指定进行取样的频率,并且‘route_threshold’确定用于初始化负载平衡的阈值。如果用于转码的在队列中的消息的数量比用于转码的在队列中的消息的平均数大阈值,那么可引起负载平衡和动态路由。
现在参照图15,根据本主题的实施方式示出了主线程150、转码线程152以及监视器线程154的整合的表示。队列管理器214的处理由队列管理器214实施。在一个实施中,队列管理器214的每个处理可由队列管理器214初始化。队列管理器214的处理包括主线程150、一个或多个转码线程152以及与一个或多个转码线程152耦接的一个或多个监视器线程154。在实施中,队列管理器214的处理能够在一个或多个处理器202中执行。队列管理器214被配置为在对等通信网络中管理一个或多个消息队列。在一个实施中,基于队列管理器214的处理的执行来管理一个或多个消息队列。
在操作期间,队列管理器214监控或者监听从客户端和服务器中输入的请求。在一个实施中,队列管理器214可使用UNIX域套接字监听请求。由一个或多个客户端104初始化请求。主线程读取XML文件,以获取服务的参数,并且初始化队列管理器214的数据结构。在得到转码的一个或多个值之后,主线程150为每个转码创建/生成转码线程152。主线程150进一步生成监视器线程154,用于监控队列。同时,转码线程152初始化转码的监听器,以从服务器和客户端接收请求,并且进一步创建/注册事件管理器156以处理转码的各种事件。而且,在监听套接字上注册事件“app_conn_callback”以获得转码的请求。而且,如果要求进行监控,则与监视器线程154进行连接,并且发送注册请求以通过调用watcher_callback函数为来自监视器线程154的任何事件注册。监视器线程154创建事件管理器158以处理在转码线程152与监视器线程154之间的各种事件。而且,通过执行app_con_callback函数,监视器线程154创建和注册监听器以接受转码线程152的连接。在检查转码线程152的请求时,监视器线程154确定是否需要路由给另一个队列。监视器线程154还检查队列的消息处理速率,以确定与队列连接的服务器是否活动。
通过参照图5可进一步示出系统102的实施,其中,描述了用于执行listener_callback函数的方法。listener_callback函数接受来自客户端和服务器的请求(步骤502)。在下一个步骤504中,调度listener_callback函数以在请求的事件管理器中为请求提供服务。图6示出了app_conn_callback函数的逐步执行。在第一步骤(步骤602)上接收请求并且检查事务代码的有效性(步骤604)。而且,在步骤606上,基于在该请求中的标记确定请求是来自客户端还是服务器。在下一个步骤608上,如果请求来自服务器,则确定最多负载的服务器队列。如果请求来自客户端,则提供最少负载的服务器队列(步骤610)。而且,在步骤612上,将请求在转码线程152中创建的套接字上发送给服务器或客户端。
而且,图7示出了主线程150的实施。在第一步骤712中,读取XML配置文件以得到用于服务的参数。在下一个步骤714中,初始化用于队列管理器214的数据结构。在第三步骤716中,初始化用于通过使用队列的服务器监控各种转码更新的队列的存储器映射文件。在第四步骤718中,初始化用于通过服务器和队列管理器214监控需要负载平衡更新的转码的队列的存储器映射文件。在第五步骤720中,解析输入并且接收转码的值。在第六步骤722中,为每个转码创建转码线程152。在第七步骤724中,创建监视器线程154以监控队列。在第八步骤726中,初始化用于输入请求的等待以启动存在于服务中的新的转码线程152。
而且,在图8中描述了转码线程152的实施。在第一步骤802中,初始化用于转码的监听器以从服务器或客户端接收请求。在第二步骤804中,创建事件管理器以处理针对转码的各种事件。在第三步骤806中,在监听套接字上注册事件app_conn_callback以得到针对转码的请求。而且,在第四步骤808中,确定是否需要监控。而且,在步骤810上,如果用户基于在配置文件中配置的设置而需要监控,则与监视器线程154进行连接。在步骤812上,发送注册请求并且通过调用watcher_callback函数来执行针对来自监视器线程154的任何事件的注册。在最后一个步骤814中,进入事件循环。
而且,在图9中示出了监视器线程154的实施。在第一步骤902中,创建事件管理器以处理在转码线程152与监视器线程154之间的各种事件。在下一个步骤904中,创建和注册监听器以接受来自转码线程152的连接。在第三步骤906中,从XML配置文件接收用于监控的参数。在第四步骤908中,基于XML配置文件中的参数收集用于每个队列和每个转码的样品。在第五步骤910中,检查来自转码线程152的用于添加队列或更新的请求。在第六步骤912中,基于用于转码的阈值和最大深度来确定是否需要路由给其他队列。在第七步骤914中,监视器线程154也检查队列的消息处理速率以确定与队列连接的服务器是否是活动的。
而且,在图10中描述了watcher_callback函数的实施。在第一步骤1002中,从监视器线程154接收请求。在第二步骤1004中,请求的类型被认为“注册成功”、“路由”、“成功取消注册”、“没有服务器”或“服务器恢复”中的一个。如果请求是“路由”请求(步骤1008),则调用load_balance_queue函数(步骤1010)。如果请求是“没有服务器”请求(步骤1014),则调用manage_queue函数(步骤1016)。如果请求是“服务器”恢复请求(步骤1018),则调用reset_queue_parameter函数(步骤1020)。
而且,在图11中描述了load_balance_queue函数的实施。在第一步骤1102中,计算用于转码的队列的平均深度。在第二步骤1104中,在非阻塞模式中从重负载队列接收消息。在下一个步骤1106中,确定是否达到平均深度。如果达到平均深度,则将消息发送给最少负载的队列(步骤1108)。在步骤1110中,确定是否到达最后的队列。执行步骤1104到步骤1108,直到到达最后的队列。
而且,在图12的步骤中描述了manage_queue函数的实施。在第一步骤1202中,用于队列的服务器的数量的值减小。在第二步骤1204中,将数据路由给具有活动服务器的其他队列。在第三步骤1206中,注册队列的用于路由任何其他进入数据的error_callback函数。
而且,在图13的步骤中描述了reset_queue_parameter函数的实施。在第一步骤1302中,更新存储器映射文件中的服务器的数量的值。在第二步骤1304中,从事件管理器取消队列的注册。
现在参照图16,根据本主题的示例性实施示出了通过队列管理器214的在多个实体之间的数据和消息流动。队列管理器214在对等通信网络中管理一个或多个消息队列。为了管理一个或多个消息队列,队列管理器214包括执行多个队列管理器214的处理,例如,主线程150、转码线程152以及监视器线程154。在一个实施中,队列管理器214还可包括队列监控器218以监控消息队列。
在一个实施中,通过UNIX域套接字层从客户端和服务器中接受请求(步骤1601)。转码线程150通过UNIX域套接字层接收请求并且接收用于服务的参数(步骤1602)。主线程150初始化用于监控并且用于负载平衡的存储器映射文件(步骤1603)。而且,主线程150为每个转码创建转码线程152(步骤1604)以及监视器线程154以监控消息队列(步骤1605)。同时,为转码线程152初始化监听器以从客户端和服务器中接收请求(步骤1606)。而且,如果在配置文件中配置请求并且为监视器线程154的任何事件注册请求,则转码线程152发送队列的注册请求以增加监控(步骤1607)。监视器线程154基于转码的最大深度和阈值确定是否需要路由给其他队列,并且基于从队列处理的消息的数量进行检查以确定与队列连接的服务器是否是活动的(步骤1608)。如果需要路由,则将在消息队列中的消息动态地路由给下一个可用服务器(步骤1609)。
现在参照图14,根据本主题的实施方式示出了用于在对等通信网络中管理一个或多个消息队列的方法1400。可在计算机可执行指令的通用背景下描述方法1400。通常,计算机可执行指令可包括例行程序、程序、目标、元件、数据结构、过程、模块、功能等,其执行特定功能或实现特定的抽象数据类型。还可在由通过通信网络链接的远程处理装置执行功能的分配式计算环境中实践该方法1400。在分配式计算环境中,计算机可执行指令可位于本地和远程计算机存储介质中,包括存储器存储装置。
描述方法1400的顺序并非旨在被理解为限制性的,并且可以任意顺序组合任何数量的所描述的方法的方框以任意实现方法1400或替换的方法。此外,在不背离在本文中描述的主题的精神和范围的情况下,可从方法1400中删除单独的方框。而且,可通过任何合适的硬件、软件、固件或其组合,来实现该方法。然而,为了便于解释,在下面描述的实施方式中,方法1400可被视为实施在上述系统102中。
在方框1402上,通过消息队列在一个或多个对等端之间初始化通信信道,可通过初始化模块212初始化通信。
在方框1404上,通过统一通信系统管理对等端之间的通信。在一个实施中,通信可由队列管理器214管理。
在方框1406上,能够允许对等端识别消息队列以便发送和接收消息。在一个实施中,队列管理器214使对等端能够识别消息队列。
在方框1408上,在用于事务的消息队列之间均匀地分配负载。在一个实施中,负载平衡模块216在消息队列之间分配负载。
在方框1410上,监控与服务和转码相对应的消息队列。在一个实施中,通过队列监控器218执行监控。
在方框1412上,检测在统一通信系统中的服务器的状态。在一个实施中,故障检测和处理模块220执行检测。
在方框1414上,将消息动态地路由给下一个可用服务器。在一个实施中,故障检测和处理模块220执行路由。
虽然使用结构特征和/方法专用的语言,描述了用于在对等通信网络中管理一个或多个消息队列的方法和系统的实施,但是要理解的是,所附权利要求不必限于所描述的特定特征或方法。确切地说,公开了特定的特征和方法,作为用于在对等通信网络中管理一个或多个消息队列的实施的实例。
Claims (13)
1.一种用于在对等通信网络中管理一个或多个消息队列的方法,所述方法包括:
通过所述消息队列初始化一个或多个对等端之间的通信信道;
通过统一通信系统管理所述对等端之间的通信并且使所述对等端能够识别所述消息队列以发送和接收消息,所述管理进一步包括:
基于预定义条件,在所述统一通信系统中的用于事务的所述消息队列之间均匀地分配负载;
监控与服务和与所述服务相关的转码相对应的所述消息队列,所述监控进一步包括:
在所述统一通信系统中检测服务器的状态,其中,将所述消息队列中的所述消息动态地路由至下一个可用服务器,
其中,利用存储在存储器中的程序指令通过处理器来执行所述管理、所述分配、所述监控以及所述检测。
2.根据权利要求1所述的方法,其中,会话指代两个对等端之间的通信处理。
3.根据权利要求1所述的方法,其中,所述对等端包括在客户端服务器关系的情况下的客户端、服务器、如果不存在所述客户端服务器关系时的发送器或接收器中的至少一个或其组合。
4.根据权利要求1所述的方法,其中,所述转码是识别从所述服务请求的事务的类型的代码。
5.根据权利要求1所述的方法,其中,所述预定义条件限定阈值,所述阈值用于初始化均匀地进行所述消息队列之间的负载的所述分配。
6.根据权利要求1所述的方法,其中,所述监控进一步包括将存储器映射文件用于针对每个时间间隔确定附接至所述消息队列的服务器、写入所述消息队列中的所述消息以及从所述消息队列读取的所述消息的数量。
7.一种用于在用于对等通信网络的统一通信系统中管理一个或多个消息队列的系统,所述系统包括:
处理器;以及
存储器,所述存储器耦接至所述处理器,其中,所述处理器能够执行存储在所述存储器中的多个模块,并且其中,所述多个模块包括:
初始化模块,被配置为通过所述消息队列初始化一个或多个对等端之间的通信信道;
队列管理器,被配置为通过所述统一通信系统管理所述对等端之间的通信,其中,所述队列管理器使所述对等端能够识别所述消息队列以发送和接收消息,所述队列管理器进一步包括:
负载平衡模块,被配置为基于预定义条件在所述统一通信系统中的用于事务的所述消息队列之间均匀地分配负载;
队列监控器,被配置为监控与服务和与所述服务相关的转码相对应的所述消息队列,所述队列监控器进一步包括:
故障检测和处理模块,被配置为在所述统一通信系统中检测服务器的状态,其中,所述故障检测和处理模块将所述消息队列中的所述消息动态地路由至下一个可用服务器。
8.根据权利要求7所述的系统,其中,会话指代在两个对等端之间的通信处理。
9.根据权利要求7所述的系统,其中,所述对等端包括在客户端服务器关系的情况下的客户端、服务器、如果不存在所述客户端服务器关系时的发送器或接收器中的至少一个或其组合。
10.根据权利要求7所述的系统,其中,所述转码是识别从所述服务请求的事务的类型的代码。
11.根据权利要求7所述的系统,其中,所述预定义条件限定阈值,所述阈值用于初始化均匀地进行所述消息队列之间的负载的所述分配。
12.根据权利要求7所述的系统,其中,所述队列监控器进一步将存储器映射文件用于针对每个时间间隔确定附接至所述消息队列的服务器、写入所述消息队列中的所述消息以及从所述消息队列读取的所述消息的数量。
13.一种计算机程序产品,具有在其上包含的用于在对等通信网络中管理一个或多个消息队列的计算机程序,所述计算机程序产品包括:
用于通过所述消息队列初始化一个或多个对等端之间的通信信道的程序代码;
用于通过统一通信系统管理所述对等端之间的通信并且使所述对等端能够识别所述消息队列以发送和接收消息的程序代码,所述管理进一步包括:
用于基于预定义条件在统一通信系统中的用于事务的所述消息队列之间均匀地分配负载的程序代码;
用于监控与服务和与所述服务相关的转码相对应的所述消息队列的程序代码,所述监控进一步包括:
用于在所述统一通信系统中检测服务器的状态的程序代码,其中,将在所述消息队列中的所述消息动态地路由至下一个可用服务器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2744MU2013 IN2013MU02744A (zh) | 2013-08-22 | 2013-08-22 | |
IN2744/MUM/2013 | 2013-08-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104426800A true CN104426800A (zh) | 2015-03-18 |
CN104426800B CN104426800B (zh) | 2018-08-14 |
Family
ID=52481365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410416091.7A Active CN104426800B (zh) | 2013-08-22 | 2014-08-21 | 用于在对等通信网络中管理消息队列的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9438668B2 (zh) |
CN (1) | CN104426800B (zh) |
AU (1) | AU2014215935B2 (zh) |
IN (1) | IN2013MU02744A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389258A (zh) * | 2015-12-10 | 2016-03-09 | 腾讯科技(深圳)有限公司 | 一种程序检测方法及装置 |
CN108804238A (zh) * | 2018-03-29 | 2018-11-13 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN109450803A (zh) * | 2018-09-11 | 2019-03-08 | 广东神马搜索科技有限公司 | 流量调度方法、装置和系统 |
CN110704208A (zh) * | 2019-09-19 | 2020-01-17 | 深圳证券交易所 | 多个系统的消息处理方法、服务器及存储介质 |
CN113419761A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 释放sp/cp运营人员内容注入工作的方法及系统 |
CN113472736A (zh) * | 2021-05-14 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种内外网数据传输的方法、装置、设备及可读介质 |
CN113965628A (zh) * | 2020-12-03 | 2022-01-21 | 广州三叠纪元智能科技有限公司 | 消息调度方法、服务器和存储介质 |
CN114979233A (zh) * | 2022-07-19 | 2022-08-30 | 深圳市亿联无限科技有限公司 | 基于域套接字实现模块间同步和异步调用的方法和系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10079740B2 (en) * | 2014-11-04 | 2018-09-18 | Fermi Research Alliance, Llc | Packet capture engine for commodity network interface cards in high-speed networks |
US9954771B1 (en) * | 2015-01-30 | 2018-04-24 | Marvell Israel (M.I.S.L) Ltd. | Packet distribution with prefetch in a parallel processing network device |
CN106330994A (zh) * | 2015-06-18 | 2017-01-11 | 天脉聚源(北京)科技有限公司 | 一种用户消息发布方法及系统 |
US9774512B1 (en) | 2015-07-08 | 2017-09-26 | Introspec Ltd | Measuring server availability and managing traffic in adaptive bitrate media delivery |
US9525713B1 (en) * | 2015-07-08 | 2016-12-20 | Introspec Ltd. | Measuring server availability and managing traffic in adaptive bitrate media delivery |
US11463514B2 (en) * | 2018-10-08 | 2022-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatuses for balancing utilization of computer resources |
US11729119B2 (en) * | 2021-11-18 | 2023-08-15 | Cisco Technology, Inc. | Dynamic queue management of network traffic |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100558080C (zh) * | 2006-12-12 | 2009-11-04 | 华为技术有限公司 | 集群消息传送方法及分布式集群系统 |
CN101854299A (zh) * | 2010-05-21 | 2010-10-06 | 中国科学院软件研究所 | 一种发布/订阅系统的动态负载平衡方法 |
CN101499957B (zh) * | 2008-01-29 | 2011-06-15 | 中国电信股份有限公司 | 一种多径负载均衡的实现方法和数据转发装置 |
CN102404211A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种amp架构下处理器负载均衡的实现方法及装置 |
US20120109852A1 (en) * | 2010-10-27 | 2012-05-03 | Microsoft Corporation | Reactive load balancing for distributed systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL111154A0 (en) | 1993-10-21 | 1994-12-29 | Martino Ii John A | Systems and methods for electronic messaging |
US7624308B2 (en) | 2005-03-28 | 2009-11-24 | Microsoft Corporation | Failed message error recovery using application specific error queues |
US8239520B2 (en) | 2007-04-05 | 2012-08-07 | Alcatel Lucent | Network service operational status monitoring |
-
2013
- 2013-08-22 IN IN2744MU2013 patent/IN2013MU02744A/en unknown
-
2014
- 2014-08-19 AU AU2014215935A patent/AU2014215935B2/en active Active
- 2014-08-21 CN CN201410416091.7A patent/CN104426800B/zh active Active
- 2014-08-22 US US14/466,279 patent/US9438668B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100558080C (zh) * | 2006-12-12 | 2009-11-04 | 华为技术有限公司 | 集群消息传送方法及分布式集群系统 |
CN101499957B (zh) * | 2008-01-29 | 2011-06-15 | 中国电信股份有限公司 | 一种多径负载均衡的实现方法和数据转发装置 |
CN101854299A (zh) * | 2010-05-21 | 2010-10-06 | 中国科学院软件研究所 | 一种发布/订阅系统的动态负载平衡方法 |
US20120109852A1 (en) * | 2010-10-27 | 2012-05-03 | Microsoft Corporation | Reactive load balancing for distributed systems |
CN102404211A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种amp架构下处理器负载均衡的实现方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389258A (zh) * | 2015-12-10 | 2016-03-09 | 腾讯科技(深圳)有限公司 | 一种程序检测方法及装置 |
CN105389258B (zh) * | 2015-12-10 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种程序检测方法及装置 |
CN108804238A (zh) * | 2018-03-29 | 2018-11-13 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN108804238B (zh) * | 2018-03-29 | 2022-03-04 | 中国工程物理研究院计算机应用研究所 | 一种基于远程过程调用的软总线通信方法 |
CN109450803A (zh) * | 2018-09-11 | 2019-03-08 | 广东神马搜索科技有限公司 | 流量调度方法、装置和系统 |
CN109450803B (zh) * | 2018-09-11 | 2022-05-31 | 阿里巴巴(中国)有限公司 | 流量调度方法、装置和系统 |
CN110704208A (zh) * | 2019-09-19 | 2020-01-17 | 深圳证券交易所 | 多个系统的消息处理方法、服务器及存储介质 |
CN113965628A (zh) * | 2020-12-03 | 2022-01-21 | 广州三叠纪元智能科技有限公司 | 消息调度方法、服务器和存储介质 |
CN113472736A (zh) * | 2021-05-14 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种内外网数据传输的方法、装置、设备及可读介质 |
CN113472736B (zh) * | 2021-05-14 | 2023-06-02 | 山东英信计算机技术有限公司 | 一种内外网数据传输的方法、装置、设备及可读介质 |
CN113419761A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 释放sp/cp运营人员内容注入工作的方法及系统 |
CN114979233A (zh) * | 2022-07-19 | 2022-08-30 | 深圳市亿联无限科技有限公司 | 基于域套接字实现模块间同步和异步调用的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
AU2014215935A1 (en) | 2015-03-12 |
US20150058404A1 (en) | 2015-02-26 |
US9438668B2 (en) | 2016-09-06 |
IN2013MU02744A (zh) | 2015-07-03 |
AU2014215935B2 (en) | 2015-12-10 |
CN104426800B (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104426800A (zh) | 用于在对等通信网络中管理消息队列的系统和方法 | |
JP3980596B2 (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
US9270782B2 (en) | System and method for managing network communications between server plug-ins and clients | |
US8544075B2 (en) | Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner | |
US20150074173A1 (en) | Generic distributed processing for multi-agent systems | |
US20190132276A1 (en) | Unified event processing for data/event exchanges with existing systems | |
US20060168334A1 (en) | Application layer message-based server failover management by a network element | |
US11012500B2 (en) | Secure multi-directional data pipeline for data distribution systems | |
KR20000057718A (ko) | 자각-개시 푸시를 제공하기 위한 방법 및 장치 | |
US20060069777A1 (en) | Request message control method for using service and service providing system | |
US20150312364A1 (en) | Intelligent Global Services Bus and System for Mobile Applications | |
CN103248670A (zh) | 计算机网络环境下的连接管理 | |
Patro et al. | Comparative study of middleware solutions for control and monitoring systems | |
La Marra et al. | Introducing usage control in MQTT | |
KR20150033454A (ko) | 빅데이터 처리 장치 관리 방법 및 이를 수행하는 관리 시스템 | |
US11102293B2 (en) | System and method for migrating an agent server to an agent client device | |
US20100067402A1 (en) | Middleware components for bundling service invocations | |
Dickel et al. | Evaluation of autoscaling metrics for (stateful) IoT gateways | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
CN111490997B (zh) | 任务处理方法、代理系统、服务系统和电子设备 | |
US20190386928A1 (en) | System and method for utilizing idle network resources | |
Szydło et al. | Message-oriented communication for ipv6-enabled pervasive devices | |
WO2023238284A1 (ja) | 管理システム、管理方法、及び、管理プログラム | |
Lee et al. | Designing a Method of Data Transfer Using Dual Message Queue Brokers in an IoT Environment | |
US9760407B2 (en) | Mobile device based workload distribution |
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 |