CN113296972A - 一种信息的注册方法、计算设备及存储介质 - Google Patents
一种信息的注册方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN113296972A CN113296972A CN202010698796.8A CN202010698796A CN113296972A CN 113296972 A CN113296972 A CN 113296972A CN 202010698796 A CN202010698796 A CN 202010698796A CN 113296972 A CN113296972 A CN 113296972A
- Authority
- CN
- China
- Prior art keywords
- information
- registered
- message
- execution unit
- message middleware
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种信息的注册方法、计算设备及存储介质。在本申请实施例中,接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元;根据对应的执行单元对应的线程,获取待注册信息;通过线程,对待注册信息进行注册。在接收到至少一个待注册信息时,如多个待注册信息等。可以将这些待注册信息发送至对应的执行单元,进行注册。由于存在多个执行单元,且每个执行单元对对应的待注册信息进行注册,从而使得待注册信息可以被并行处理,提高了注册速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种信息的注册方法、计算设备及存储介质。
背景技术
随着互联网高速发展,云服务相比于传统的计算服务,具有廉价、易扩展、可伸缩、易管理、高可用等多项优势,因此在信息互联网时代占据着越来越关键的地位。
在云服务器上可以部署多台机器,如多台消息中间件。然而,由于部署的机器较多,常常会遇到性能瓶颈,特别是在机房断网时的容灾演练中,对于消息中间件而言,每次的重新注册延迟会超过10毫秒(甚至上百毫秒),最终导致消息中间件的启动速度会变慢很多。
发明内容
本申请的多个方面提供一信息的注册方法、计算设备及存储介质,用以能够较为快速地提高信息的注册速度,从而可以提高机器的启动速度。
本申请实施例还提供一种信息的注册方法,包括:接收至少一个消息中间件的待注册信息,将每个所述待注册信息发送至多个执行单元中对应的执行单元;根据所述对应的执行单元对应的线程,获取所述待注册信息;通过所述线程,对所述待注册信息进行注册。
本申请实施例还提供一种计算设备,包括:存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:将每个所述待注册信息发送至多个执行单元中对应的执行单元;根据所述对应的执行单元对应的线程,获取所述待注册信息;通过所述线程,对所述待注册信息进行注册;所述通信组件,用于接收至少一个消息中间件的待注册信息。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
在本申请实施例中,接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元;根据对应的执行单元对应的线程,获取待注册信息;通过线程,对待注册信息进行注册。在接收到至少一个待注册信息时,如多个待注册信息等。可以将这些待注册信息发送至对应的执行单元,进行注册。由于存在多个执行单元,且每个执行单元对对应的待注册信息进行注册,从而使得待注册信息可以被并行处理,提高了注册速度。
相应的,由于提高了注册速度,使得被注册的设备,如消息中间件可以在快速注册后,进行启动,提高了启动速度,特别是在断网且恢复的情况下,可以快速拉起设备,提升用户的体验感,节省时间成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例的信息的注册系统的结构示意图;
图2为本申请一示例性实施例的信息的注册方法的流程示意图;
图3为本申请又一示例性实施的信息注册的流程示意图;
图4为本申请又一示例性实施的topic(消息主题)维度数据生成的示意图;
图5为本申请一示例性实施例的消息中间件的注册与发现的过程示意图;
图6为本申请又一示例性实施例提供的信息的注册装置的结构示意图;
图7为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于前文可知,由于云服务器上部署多台机器,特别是在机房断网时的容灾演练中,对于消息中间件而言,每次的重新注册延迟会超过10毫秒(甚至上百毫秒),最终导致消息中间件的启动速度会变慢很多。
而导致注册慢的根本原因是当前采用了读写锁进行注册。注册过程是一个写行为,需要采用写锁保护,这会造成所有的注册请求在写锁上进行排队。当注册请求需要被处理时,就会产生排队,而且这个队列有且只有一个。
由此,本申请实施例提供一种方法,能够较为快速地提高数据的处理速度,从而可以提高机器的启动速度。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种信息的注册系统的结构示意图。如图1所示,该系统100可以包括:第一设备101以及第二设备102。
其中,第一设备101是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行发送待处理数据(如,信息注册)的设备。可以实现向第二设备102发送数据的功能,并从第二设备获取到响应数据。在物理实现上,第一设备101可以是任何能够提供计算服务,响应服务请求,并返回数据处理结果,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第一设备101的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
需要说明的是,第一设备101若是基于物理设备上的虚拟设备,则其基于的物理设备可以包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
第一设备101可以集群101’的形式存在。在该集群101’中可以具有多个第一设备101。每个第一设备101都可以向第二设备102发送待处理数据。
第二设备102是指可以在网络虚拟环境中提供计算处理服务的设备,可以利用网络进行数据处理,如信息注册。可以实现接收第一设备101发送的待处理数据,并返回第一设备101响应数据。在物理实现上,第二设备102可以是任何能够提供计算服务,响应服务请求,并返回数据处理结果,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备102的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
需要说明的是,第二设备102若是基于物理设备上的虚拟设备,则其基于的物理设备可以包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
第一设备102可以集群102’的形式存在。在该集群102’中可以具有多个第一设备102。每个第一设备102都可以接收第一设备101发送的待处理数据,并进行数据处理。
在本申请实施例中,第一设备101向第二设备102发送待注册信息。第二设备102,接收至少一个第一设备101发送的待注册信息,将每个注册信息发送至多个执行单元中对应的执行单元;根据对应的执行单元对应的线程,获取待注册信息;通过线程,对待注册信息进行注册,得到注册结果。第二设备102,将注册结果返回至第一设备101。
在本申请实施例的应用场景中,第一设备101,如消息中间件Broker,在被新部署在云服务上的时候,需要根据预置配置信息自动连接第二设备102,如消息命名服务器NameServer。并向NameServer发送待处理数据,如待注册信息,或者携带有待注册信息的注册请求。NameServer接收到待注册信息后,根据第一设备的设备标识,如Broker名称,从多个执行单元中确定对应的一个执行单元,进行信息注册。并把该待注册信息存储至该执行单元对应的存储队列,以等待该执行单元的获取。NameServer中的执行单元从存储队列中获取到该待注册信息,并通过该执行单元的对应线程在信息管理单元上进行注册。注册成功后,NameServer将表示注册成功的消息发送至Broker。
在上述本实施例中,上述设备均可以进行网络连接,该网络连接可以是无线连接。若上述设备是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
下面结合方法实施例,针对信息的注册过程进行详细说明。
图2为本申请一示例性实施例的一种信息的注册方法的流程示意图。本申请实施例提供的该方法200由服务器执行,如,云服务器。更具体的可以为服务器中的调度器或者调度单元。该方法200包括以下步骤:
201:接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元。
202:根据对应的执行单元对应的线程,获取待注册信息。
203:通过线程,对待注册信息进行注册。
以下针对上述步骤进行详细阐述:
201:接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元。
其中,发送待注册信息的设备,消息中间件是需要注册的设备,如部署在云服务器上的Broker,该Broker可以通过容器来实现。该设备也可以为其它服务器,如可以进行写数据或读取数据到接收待处理数据的设备上,可以是内存中的数据存储、修改、读取等等。
本申请实施例可以以Broker为例进行说明,在Broker中可以有多个消息主题topic以及多个队列,且若干队列可以组成一个topic对应的队列组。即一个topic可以对应多个队列。各个topic有自己的信息(也可以称为topic信息),如名称以及对应的队列标识,如号码或ID等。每个队列有自己的信息(也可以称为队列信息),如名称、号码或ID等。或者该队列可以标明是写入队列号码以及读取队列号码,应理解,对于同一个队列,其对应的是写入设备和读取设备,所以写入队列号码和读取队列号码可以是一样的。每个Broker有自己的标识,如名称或ID等,且每个Broker具有对应的描述信息,用于描述该Broker用于存储什么样的数据。且Broker可以集群Cluster为单位进行部署。每个集群中有多个Broker,可以相同。每个Broker具有对应的网络地址,如IP地址,还可以具有具体的网络连接信息,如网络端口号码等。
由此,每个Broker有自己的元数据(也可以称为元信息,Broker Data),可以包括Broker名称、集群以及网络地址等。每个队列也可以有自己的队列信息(Queue Data,也可以称为队列信息),可以包括:Broker名称(队列所属的Broker名称)、读取队列号码、写入队列号码以及topic信息(如,topic名称)。
其中,执行单元是指用于处理待注册信息的单元,如Broker Worker执行单元。其创建方式为:
具体的,该方法200还包括:根据处理器数量或处理器的内核数量,创建对应数量的执行单元。
其中,处理器所属的物理设备是指接收待注册信息的主机,如云服务器主机。处理器是指主机所配置的处理器,如CPU(中央处理器,central processing unit)。一个处理器在具有一个内核时,可以通过处理器的数量来直接确定执行单元的数量。如果,一个处理器具有多个内核时,可以直接通过内核数量来确定执行单元的数量。即一个内核对应一个执行单元。
例如,根据前文所述,NameServer中的调度器(也可以称为调度单元,如BrokerWorker Dispatcher)根据NameServer所属云服务器物理机的CPU所具有的内核总数量,如6个内核,直接初始化6个执行单元,每个执行单元可以具有自己的标识,如ID。每个执行单元运行在对应的内核上,由对应的内核硬件来支持待注册信息的处理。
由此,可以在物理设备支持的情况下,如物理设备的处理器具有多核的情况下,可以充分利用物理设备的多核高处理的资源来生成执行单元,从而支持并行处理待注册信息。
在初始化创建完多个执行单元后,NameServer可以接收各个需要注册的Broker发送的待注册信息。NameServer可以直接接收待注册信息,也可以通过请求的形式进行接收:
具体的,接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元,包括:接收待注册请求,待注册请求中携带待注册数据;根据待注册数据,生成待注册任务;将待注册任务作为待注册信息发送至对应的执行单元。
以Broker进行注册为例说明:
对于Broker而言,待注册信息可以是前述的Broker的元数据和队列信息。
例如,根据前文所述,NameServer中的调度器接收Broker发送的待注册请求,可以根据该待注册请求生成待注册任务,也可以直接根据待注册信息生成待注册任务,并由NameServer中的调度器将待注册任务发送至对应的执行单元。
需要说明的是,除了通过调度器来接收到该请求外,还可以另部署一个单元,如请求处理单元Request Process NG,单独来进行请求接收和任务创建。
图3示出了信息注册的流程图300。如图3所示,NameServer中的请求处理单元执行步骤301:接收注册请求,根据注册请求,执行步骤302:生成待注册任务。再执行步骤303:发送待注册任务至NameServer中的调度单元,即调度器。调度单元接收到该任务,针对该任务,执行步骤304:确定对应的执行单元。
此外,执行单元的确定方式为:
具体的,该方法200还包括:建立消息中间件标识与执行单元的一一对应关系;根据一一对应关系以及待注册信息中的消息中间件标识,确定对应的执行单元,以进行待注册信息的发送。
例如,根据前文所述,NameServer中的调度器在创建完执行单元后,为每个执行单元设置对应的Broker,即Broker名称可以与执行单元的ID一一对应。需要说明的是,由于Broker名称是预置好的,所以可以预先针对Broker名称,将Broker分配给一个执行单元,生成一一对应的对应关系。并直接根据Broker名称确定对应的执行单元。
更具体的,还可以通过哈希算,确定每个Broker名称的哈希值,将Broker名称的哈希值与执行单元的ID一一对应。当NameServer中的调度器接收到待注册任务后,获取其中的Broker名称,确定其哈希值,并根据哈希值确定执行单元的ID,从而确定出对应的执行单元。从而将该任务发送至NameServer中对应的执行单元。
202:根据对应的执行单元对应的线程,获取待注册信息。
例如,根据前文所述,具体的由对应的执行单元中的线程接收到前述的待注册任务后,进行Broker注册。
由于待注册信息,即待注册任务,可能存在并发的情况,或者存在大量设备同时发送待注册信息,那么就有可能使得接收设备接收到大量需要处理的注册信息。为了能够方便管理这些待注册信息,可以为执行单元设置对应的存储队列。
具体的,每个执行单元设置有对应的存储队列,用于存储待注册任务;其中,将待注册任务发送至对应的执行单元,包括:将待注册任务发送至对应的执行单元对应的存储队列中,以等待执行单元对应的线程获取存储队列中的待处理任务。
例如,根据前文所述,NameServer中的调度器在创建完执行单元后,还可以为每个执行单元创建一个对应的存储队列,用于存储待注册任务。如图3所示,当调度器,即调度单元确定了对应的执行单元后,执行步骤305:将待注册任务发送至对应的执行单元对应的存储队列进行存储。
其中,线程是每个执行单元的线程,即该线程所属于执行单元。该线程是预先创建好的,具体的,该方法200还包括:在创建完执行单元后,为每个执行单元创建各自对应的线程,用于处理待注册信息。
在调度器创建执行单元后,可以为各个执行单元创建其对应的一个线程,用于处理待注册信息。即该线程与对应的执行单元是关联的。由此,可以通过该关联的线程,执行单元接收到待处理任务,而不许其它无关联线程执行该任务,形成一个封闭处理,对于多个执行单元而言,可以实现互不干扰,互相独立地进行并行处理。
例如,根据前文所述,如图3所示,对应的执行单元的线程从存储队列中依次获取待注册任务,即执行步骤306:获取待注册任务。该线程获取到任务后进行任务处理。
需要说明的是,对于执行单元的存储队列而言,由于其中待注册任务是按照顺序进行排队的。如可以按照先进先出的顺序进行排队。由此,执行单元的线程也是按照先进先出的顺序进行读取任务,执行任务。
在存储队列未存满的情况下,调度器可以将任务存储至存储队列,当存储队列存满的时候,则需要调度器进行等待。
具体的,该方法200还包括:当对应的存储队列已存满的情况下,等待存储队列中的待注册任务进行注册,在存储队列有空余的情况下,将待注册任务发送至对应的存储队列。
例如,根据前文所述,调度器将待注册任务存储至存储队列时,若该存储队列已存满,可以接收到该存储队列发送的消息,表示已存满,此时,调度器进行等待。同时,调度器此时可以向请求处理单元发送消息,表示暂时不要发送待注册任务了,直至存储队列有空余后,存储队列可以向调度器发送消息,以表示队列空余,则调度器可以将当前的待注册任务存储至存储队列。调度器则向请求处理单元发送消息,可进行待注册任务的发送。
203:通过线程,对待注册信息进行注册。
其中,通过线程,可以到信息管理单元上进行待注册任务的处理或注册,或者待注册信息的处理:
具体的,每个执行单元设置有一一对应的信息管理单元;其中,通过线程,对待注册信息进行注册,包括:通过线程,在对应信息管理单元处进行待注册信息的注册,并将注册结果存储至信息管理单元,以使消息生产设备根据注册结果,进行消息写入,以及消息消费设备根据注册结果,进行消息读取。
其中,信息管理单元是指用于生成注册结果的单元,如路由信息管理单元RouteInfoManagerNG。每个执行单元都对应一个信息管理单元,且一一对应。该信息管理单元也可以是调度器在创建完执行单元以及线程后,为其线程创建的对应的单元。从而使得该执行单元的线程可以操作其对应信息管理单元,生成注册结果。其它执行单元的线程无法操作不与其对应的信息管理单元,形成封闭处理。此外,由于本申请实施例与读写锁的执行方式完全不一样,所以不存在依赖或继承的关系。
例如,根据前文所述,线程获取到待注册任务后,执行步骤307:进行注册,在信息管理单元上。如,线程获取到待注册信息,如前述的Broker元数据以及队列信息,进行保存,从而实现注册并生成对应的Broker的路由信息,即通过该路由信息可以查找到对应的Broker以及其内的队列。注册成功后,信息管理单元向对应的执行单元执行步骤308:发送注册成功的消息。然后,执行单元接收该消息后,执行步骤309:返回该消息至对应Broker。
更具体的,通过线程,对待注册信息进行注册,包括:针对每个信息中间件,从待注册信息中获取该消息中间件的第一信息,并保存第一信息,第一信息为可路由到该消息中间件的信息,第一信息包括消息中间件标识;从待注册信息中获取该消息中间件对应的消息队列的第二信息,并保存第二信息,第二信息为可查询到队列的信息。
其中,第一信息是指前文中的Broker元数据,第二信息是指队列信息。
基于前文的Broker元数据以及队列信息,对于每个Broker而言,可以形成如下关联信息(也可以称为映射信息,或者绑定信息)。即集群Cluster-Broker标识(如,名称)、Broker标识(如,名称)-Broker描述信息、Broker标识(如,名称)-Broker网络地址以及网络连接信息、Broker标识(如,名称)-topic标识(如,名称)-队列信息(如,写入队列号码以及读取队列号码等)。即可以作为路由信息。
在生成Broker的路由信息后,可以等待读取设备,如消息生产设备producer以及消息消费设备consumer,从NameServer中的信息管理单元上拉取,获取该路由信息,从而可以进行消息的读取和消息的写入。
需要说明的是,由于路由信息中具有Broker的网络地址以及具体的网络连接信息,所以可以根据网络地址查找到Broker,还具有描述信息,可以使得读取设备和写入设备确定是否是自己需要的Broker。此外,还具有队列信息,所以可以查找到所需队列和所需topic等。
本申请实施例通过单独线程的形式,去除了独占的读写锁,提高了并行能力,也就具备了水平伸缩的优势,即可以快速扩充Broker的数量。同时还充分利用物理设备的多核多处理的资源,在瞬间的高并发注册Broker请求下具备稳定快速的处理能力,发挥了多核多处理器的高性能优势。
此外,为了更好地方便读取设备以及写入设备快速地查找和确定所需设备,如Broker。还可以通过topic维度数据来建立Broker路由信息。
具体的,第二信息包括消息主题,该方法200还包括:针对同一消息主题,从得到的注册结果中,将不同消息中间件的第一信息以及第二信息进行合并,以使消息生产设备根据合并结果,进行消息写入,以及消息消费设备根据合并结果,进行消息读取。
例如,根据前文所述,针对同一消息主题,从得到的注册结果中,将不同Broker的Broker元数据以及队列信息进行合并,以使消息生产设备根据合并结果,进行消息写入,以及消息消费设备根据合并结果,进行消息读取。
其中,图4示出了topic维度数据的合并过程400。在该过程400中是将前文所述的Broker元数据以及队列信息。其中Broker元数据中具有Broker name(Broker名称)、集群Cluster以及Broker address(Broker网络地址)等。队列信息中具有Broker name(Broker名称)、Read Queue Number读取队列号码、Write Queue Number写入队列号码以及topic名称等。由此,若信息管理单元注册了多个Broker后,则可以根据注册信息中相同topic名称,合并Broker元数据以及队列信息中的其它信息,从而生成topic维度数据。
需要说明的是,合并成topic维度数据后,即生成topic路由信息,即读取设备和写入设备可以根据该topic维度数据找到所需topic对应的Broker以及其内的队列。比起,Broker路由信息更加方便。
图5示出了消息中间件的注册与发现的过程。首先是消息中间件Broker的注册,然后进行topic维度数据的合并,并生成topic路由信息,以等待读取设备和写入设备进行topic路由信息的拉取。
在通过本申请实施例后,成功注册信息后,可以向对应的消息中间件发送注册成功的消息,以告知是否注册成功。
具体的,该方法200还包括:在注册成功,得到注册结果的情况下,通过对应的执行单元,向对应的消息中间件发送表示注册成功的消息。
由于前文已经阐述过了,此处就不再赘述。
为了提高资源的利用率,可以在出现断网的情况下,会清理掉断开网络连接的设备的注册信息。由此再重新恢复到网络连接后,会迎来注册信息的并发注册,于是可以根据本申请实施例提供的技术方案进行注册。
具体的,该方法200方法还可以包括:通过测试数据,确定已注册的至少一个消息中间件已断开网络连接;清除已断开网络连接的至少一个消息中间件的注册信息;针对已断开网络连接的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
NameServer可以对已经注册的Broker定时发送测试数据,以测试已经注册的Broker是否还存活,即是否还正常。若未接收到对应的响应数据,则认定该Broker未存活,有可能是网络故障导致的,有可能是Broker本身故障导致的。不论怎样,Broker都断开了与NameServer的网络连接,则NameServer可以清理掉该Broker的注册信息,如Broker元数据、指队列信息以及路由信息。等待该Broker恢复后,或者网络恢复后,重新在NameServer上进行注册。
此外,本申请实施例除了可以应用于上述情况外,还可以适用于新部署的设备进行注册:
具体的,该方法200方法还包括:针对新部署的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
此处需要说明的是,当服务器中,如云服务器中新部署了Broker,则Broker会向NameServer发送注册请求,以进行注册。具体的注册过程前文已经阐述过了,此处就不再赘述。
此外,本申请实施例经过测试,对于6核的CPU的主机而言,理论上的吞吐量会是以前的6倍。经过实际测试,得到了4倍的结果,原因是由于主机中的其它处理流程消耗了CPU的资源。但是性能还是得到了明显的改善。
图6为本申请一示例性实施例提供的一种信息的注册装置的结构框架示意图。该装置600可以应用于服务器,如,云服务器,具体的可以为云服务器中的调度器。该装置600包括:接收模块601、获取模块602以及注册模块603;以下针对各个模块的功能进行详细的阐述:
接收模块601,用于接收至少一个消息中间件的待注册信息,将每个待注册信息发送至多个执行单元中对应的执行单元。
获取模块602,用于根据对应的执行单元对应的线程,获取待注册信息。
注册模块603,用于通过线程,对待注册信息进行注册。
此外,该装置600还包括:创建模块,用于根据处理器数量或处理器的内核数量,创建对应数量的执行单元。
此外,该装置600还包括:建立模块,用于建立消息中间件标识与执行单元的一一对应关系;确定模块,用于根据一一对应关系以及待注册信息中的消息中间件标识,确定对应的执行单元,以进行待注册信息的发送。
具体的,接收模块601,包括:接收单元,用于接收待注册请求,待处理请求中携带待注册数据;生成单元,用于根据待注册数据,生成待注册任务;发送单元,用于将待注册任务作为待注册信息发送至对应的执行单元。
具体的,注册模块603,用于针对每个信息中间件,从待注册信息中获取该消息中间件的第一信息,并保存第一信息,第一信息为可路由到该消息中间件的信息,第一信息包括消息中间件标识;从待注册信息中获取该消息中间件对应的消息队列的第二信息,并保存第二信息,第二信息为可查询到队列的信息。
此外,创建模块,还用于在创建完执行单元后,为每个执行单元创建各自对应的线程,用于注册待注册信息。
其中,每个执行单元设置有对应的存储队列,用于存储待注册任务;其中,发送单元,用于将待注册任务发送至对应的执行单元对应的存储队列中,以等待执行单元对应的线程获取存储队列中的待注册任务。
其中,第二信息包括消息主题,该装置600还包括:合并模块,用于针对同一消息主题,从得到的注册结果中,将不同消息中间件的第一信息以及第二信息进行合并,以使消息生产设备根据合并结果,进行消息写入,以及消息消费设备根据合并结果,进行消息读取。
其中,每个所述执行单元设置有一一对应的信息管理单元;其中,注册模块603,用于通过线程,在对应信息管理单元处进行待注册信息的注册,并将注册结果存储至信息管理单元,以使消息生产设备根据注册结果,进行消息写入,以及消息消费设备根据注册结果,进行消息读取。
此外,该装置600还包括:发送模块,用于在注册成功,得到注册结果的情况下,通过对应的执行单元,向对应的消息中间件发送表示注册成功的消息。
此外,接收模块601,还用于针对新部署的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
此外,确定模块,还用于通过测试数据,确定已注册的至少一个消息中间件已断开网络连接;该装置600还包括:清除模块,用于清除已断开网络连接的至少一个消息中间件的注册信息;接收模块601,还用于针对已断开网络连接的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
此外,该装置600还包括:等待模块,用于当对应的存储队列已存满的情况下,等待存储队列中的待注册任务进行注册,在存储队列有空余的情况下,将待注册任务发送至对应的存储队列。
以上描述了图6所示的装置600的内部功能和结构,在一个可能的设计中,图6所示的装置600的结构可实现为计算设备,如,服务器。如图7所示,该设备700可以包括:存储器701、处理器702以及通信组件703。
存储器701,用于存储计算机程序。
处理器702,用于执行计算机程序,以用于:将每个待注册信息发送至多个执行单元中对应的执行单元;根据对应的执行单元对应的线程,获取待注册信息;通过线程,对待注册信息进行注册。
通信组件703,用于接收至少一个消息中间件的待注册信息。
此外,处理器702,还用于:根据处理器数量或处理器的内核数量,创建对应数量的执行单元。
此外,处理器702,还用于:建立消息中间件标识与执行单元的一一对应关系;根据一一对应关系以及待注册信息中的消息中间件标识,确定对应的执行单元,以进行待注册信息的发送。
具体的,处理器702,具体用于:接收待注册请求,待处理请求中携带待注册数据;根据待注册数据,生成待注册任务;将待注册任务作为待注册信息发送至对应的执行单元。具体的,处理器702,具体用于:针对每个信息中间件,从待注册信息中获取该消息中间件的第一信息,并保存第一信息,第一信息为可路由到该消息中间件的信息,第一信息包括消息中间件标识;从待注册信息中获取该消息中间件对应的消息队列的第二信息,并保存第二信息,第二信息为可查询到队列的信息。
此外,处理器702,还用于:在创建完执行单元后,为每个执行单元创建各自对应的线程,用于注册待注册信息。
其中,每个执行单元设置有对应的存储队列,用于存储待注册任务;处理器702,具体用于:将待注册任务发送至对应的执行单元对应的存储队列中,以等待执行单元对应的线程获取存储队列中的待注册任务。
其中,第二信息包括消息主题,处理器702,还用于:针对同一消息主题,从得到的注册结果中,将不同消息中间件的第一信息以及第二信息进行合并,以使消息生产设备根据合并结果,进行消息写入,以及消息消费设备根据合并结果,进行消息读取。
其中,每个所述执行单元设置有一一对应的信息管理单元;处理器702,还用于:通过线程,在对应信息管理单元处进行待注册信息的注册,并将注册结果存储至信息管理单元,以使消息生产设备根据注册结果,进行消息写入,以及消息消费设备根据注册结果,进行消息读取。
此外,通信组件703,还用于:在注册成功,得到注册结果的情况下,通过对应的执行单元,向对应的消息中间件发送表示注册成功的消息。
此外,通信组件703,还用于:针对新部署的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
此外,处理器702,还用于:通过测试数据,确定已注册的至少一个消息中间件已断开网络连接;清除已断开网络连接的至少一个消息中间件的注册信息;通信组件703,还用于:针对已断开网络连接的至少一个消息中间件,接收其发送的待注册信息,并执行将每个待注册信息发送至多个执行单元中对应的执行单元的步骤。
此外,处理器702,还用于:当对应的存储队列已存满的情况下,等待存储队列中的待注册任务进行注册,在存储队列有空余的情况下,将待注册任务发送至对应的存储队列。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图2方法实施例中一种信息的注册方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种信息的注册方法,其特征在于,包括:
接收至少一个消息中间件的待注册信息,将每个所述待注册信息发送至多个执行单元中对应的执行单元;
根据所述对应的执行单元对应的线程,获取所述待注册信息;
通过所述线程,对所述待注册信息进行注册。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据处理器数量或处理器的内核数量,创建对应数量的执行单元。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
建立消息中间件标识与所述执行单元的一一对应关系;
根据所述一一对应关系以及所述待注册信息中的所述消息中间件标识,确定对应的执行单元,以进行所述待注册信息的发送。
4.根据权利要求1所述的方法,其特征在于,所述接收至少一个消息中间件的待注册信息,将每个所述待注册信息发送至多个执行单元中对应的执行单元,包括:
接收待注册请求,所述待处理请求中携带待注册数据;
根据所述待注册数据,生成待注册任务;
将所述待注册任务作为所述待注册信息发送至对应的执行单元。
5.根据权利要求1所述的方法,其特征在于,所述通过所述线程,对所述待注册信息进行注册,包括:
针对每个信息中间件,从所述待注册信息中获取该消息中间件的第一信息,并保存所述第一信息,所述第一信息为可路由到该消息中间件的信息,所述第一信息包括所述消息中间件标识;
从所述待注册信息中获取该消息中间件对应的消息队列的第二信息,并保存所述第二信息,所述第二信息为可查询到队列的信息。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在创建完所述执行单元后,为每个执行单元创建各自对应的线程,用于注册所述待注册信息。
7.根据权利要求4所述的方法,其特征在于,所述每个执行单元设置有对应的存储队列,用于存储所述待注册任务;
其中,所述将所述待注册任务发送至对应的执行单元,包括:
将所述待注册任务发送至对应的执行单元对应的存储队列中,以等待所述执行单元对应的线程获取所述存储队列中的待注册任务。
8.根据权利要求5所述的方法,其特征在于,所述第二信息包括消息主题,所述方法还包括:
针对同一消息主题,从得到的注册结果中,将不同消息中间件的所述第一信息以及所述第二信息进行合并,以使消息生产设备根据合并结果,进行消息写入,以及消息消费设备根据合并结果,进行消息读取。
9.根据权利要求1所述的方法,其特征在于,每个所述执行单元设置有一一对应的信息管理单元;
其中,通过所述线程,对所述待注册信息进行注册,包括:
通过所述线程,在对应信息管理单元处进行所述待注册信息的注册,并将所述注册结果存储至所述信息管理单元,以使消息生产设备根据注册结果,进行消息写入,以及消息消费设备根据注册结果,进行消息读取。
10.根据权利要求1或9所述的方法,其特征在于,所述方法还包括:
在注册成功,得到注册结果的情况下,通过对应的执行单元,向对应的消息中间件发送表示注册成功的消息。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对新部署的至少一个消息中间件,接收其发送的待注册信息,并执行所述将每个所述待注册信息发送至多个执行单元中对应的执行单元的步骤。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过测试数据,确定已注册的至少一个消息中间件已断开网络连接;
清除已断开网络连接的至少一个消息中间件的注册信息;
针对已断开网络连接的至少一个消息中间件,接收其发送的待注册信息,并执行所述将每个所述待注册信息发送至多个执行单元中对应的执行单元的步骤。
13.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当对应的所述存储队列已存满的情况下,等待所述存储队列中的待注册任务进行注册,在所述存储队列有空余的情况下,将所述待注册任务发送至对应的存储队列。
14.一种计算设备,包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
将每个所述待注册信息发送至多个执行单元中对应的执行单元;
根据所述对应的执行单元对应的线程,获取所述待注册信息;
通过所述线程,对所述待注册信息进行注册;
所述通信组件,用于接收至少一个消息中间件的待注册信息。
15.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-13任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698796.8A CN113296972A (zh) | 2020-07-20 | 2020-07-20 | 一种信息的注册方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698796.8A CN113296972A (zh) | 2020-07-20 | 2020-07-20 | 一种信息的注册方法、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113296972A true CN113296972A (zh) | 2021-08-24 |
Family
ID=77318573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010698796.8A Pending CN113296972A (zh) | 2020-07-20 | 2020-07-20 | 一种信息的注册方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296972A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118905A (zh) * | 2023-10-24 | 2023-11-24 | 北京搜狐新动力信息技术有限公司 | 一种路由注册、路由调用方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650698A (zh) * | 2009-08-28 | 2010-02-17 | 曙光信息产业(北京)有限公司 | 直接存储器访问的实现方法 |
CN102541906A (zh) * | 2010-12-24 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 分布式业务处理方法及分布式系统 |
US20120324456A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Managing nodes in a high-performance computing system using a node registrar |
CN103279391A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法 |
CN106202324A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种实时计算平台的数据处理方法和装置 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110474917A (zh) * | 2019-08-16 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 消息中间件上、下线方法、装置、设备及可读存储介质 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
CN110912947A (zh) * | 2018-09-14 | 2020-03-24 | 西安西拓电气股份有限公司 | 数据处理方法及装置 |
CN110955506A (zh) * | 2019-11-26 | 2020-04-03 | 浙江电子口岸有限公司 | 一种分布式作业调度处理方法 |
CN111049753A (zh) * | 2019-12-18 | 2020-04-21 | 网易(杭州)网络有限公司 | 消息的发送方法、装置、电子设备及计算机可读介质 |
WO2020107016A1 (en) * | 2018-11-22 | 2020-05-28 | Jeffrey Alan Carley | Message broker customization with user administered policy functions |
-
2020
- 2020-07-20 CN CN202010698796.8A patent/CN113296972A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650698A (zh) * | 2009-08-28 | 2010-02-17 | 曙光信息产业(北京)有限公司 | 直接存储器访问的实现方法 |
CN102541906A (zh) * | 2010-12-24 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 分布式业务处理方法及分布式系统 |
US20120324456A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Managing nodes in a high-performance computing system using a node registrar |
CN103279391A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法 |
CN106202324A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种实时计算平台的数据处理方法和装置 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110912947A (zh) * | 2018-09-14 | 2020-03-24 | 西安西拓电气股份有限公司 | 数据处理方法及装置 |
WO2020107016A1 (en) * | 2018-11-22 | 2020-05-28 | Jeffrey Alan Carley | Message broker customization with user administered policy functions |
CN110474917A (zh) * | 2019-08-16 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 消息中间件上、下线方法、装置、设备及可读存储介质 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
CN110955506A (zh) * | 2019-11-26 | 2020-04-03 | 浙江电子口岸有限公司 | 一种分布式作业调度处理方法 |
CN111049753A (zh) * | 2019-12-18 | 2020-04-21 | 网易(杭州)网络有限公司 | 消息的发送方法、装置、电子设备及计算机可读介质 |
Non-Patent Citations (2)
Title |
---|
关淞元: "《C语言从新手到高手》", 31 January 2020, 中国铁道出版社有限公司 * |
姚思明: "消息中间件元数据管理模块及发布订阅接口的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118905A (zh) * | 2023-10-24 | 2023-11-24 | 北京搜狐新动力信息技术有限公司 | 一种路由注册、路由调用方法及装置 |
CN117118905B (zh) * | 2023-10-24 | 2024-01-09 | 北京搜狐新动力信息技术有限公司 | 一种路由注册、路由调用方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN106371894B (zh) | 一种配置方法、装置和数据处理服务器 | |
CN107391629B (zh) | 集群间数据迁移方法、系统、服务器及计算机存储介质 | |
CN109491801B (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
TWI408934B (zh) | 網路介面技術 | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN112650558A (zh) | 数据处理方法、装置、可读介质和电子设备 | |
CN116955251A (zh) | 一种基于重排序缓冲器的读请求处理方法及相关装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN113296931A (zh) | 一种资源的控制方法、系统、计算设备及存储介质 | |
EP4102367A1 (en) | Message format indicator for resource-constrained devices | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN113296972A (zh) | 一种信息的注册方法、计算设备及存储介质 | |
CN112486468A (zh) | 基于spark内核的任务执行方法、系统和计算机设备 | |
US20150378794A1 (en) | Information processing device, information processing system, and interrupt device control method | |
CN111310638B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110955461B (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
JP2023505783A (ja) | Gpuパケット集約システム | |
CN106933646B (zh) | 一种创建虚拟机的方法及装置 | |
CN111414240B (zh) | 内核态进程复制方法以及装置、容器扩容方法以及装置 | |
CN109656674B (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
CN108833532B (zh) | 基于物联网的服务处理方法、装置和系统 | |
CN117270987A (zh) | 应用启动方法、装置、电子设备及计算机可读存储介质 | |
CN113254143B (zh) | 虚拟化网络功能网元编排调度方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210824 |
|
RJ01 | Rejection of invention patent application after publication |