CN109257435B - 基于消息中间件的多实例多子***应用的通信*** - Google Patents
基于消息中间件的多实例多子***应用的通信*** Download PDFInfo
- Publication number
- CN109257435B CN109257435B CN201811229698.9A CN201811229698A CN109257435B CN 109257435 B CN109257435 B CN 109257435B CN 201811229698 A CN201811229698 A CN 201811229698A CN 109257435 B CN109257435 B CN 109257435B
- Authority
- CN
- China
- Prior art keywords
- application
- manager
- subsystem
- instance
- gateway
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 abstract description 15
- 238000012545 processing Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
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/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供的基于消息中间件的多实例多子***应用的通信***,包括第一子***,所述第一子***包括外部***和多个应用实例,所述第一子***还包括多个应用节点管理器,所述应用节点管理器的个数大于1;其中,一个应用节点管理器对应连接至少一个应用实例;所述多个应用节点管理器分别与所述外部***连接。本申请增加了应用节点管理器的数量,即增加了MQ管理器的使用资源,其中一个应用节点管理器对应连接至少一个应用实例,优选地可以为每个应用实例分别提供一个MQ管理器的方法,这样应用实例之间的MQ通信资源就不会互相挤占,而且应用实例之间不会相互影响,某个MQ管理器发生问题也不会影响到所有的应用实例。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于消息中间件的多实例多子***应用的通信***。
背景技术
应用***中,应用程序与应用程序之间常常使用消息中间件进行通信。
消息中间件是一种应用程序之间数据传输的通信技术,是一种区别于远程过程调用的通信技术。目前市场上的消息中间件产品主要有Kafka、RabbitMQ、RocketMQ、ActiveMQ、Joram、HornetQ、OpenMQ、IBM WebSphere MQ(Message Queue)等。消息中间件简化了应用程序之间的数据传输,提供了统一的通信标准,使得消息可以在不同***之间安全可靠地传输,确保分布式网络环境下可靠的、跨平台的信息传输和数据交换。
如图1所示,目前基于消息中间件的应用***通信架构中,应用***的多个应用实例通过连接一个MQ管理器与外部***交互。其中,所有与外部***的交互以及内部信息处理都通过该MQ管理器来进行管理。
具体地,与外部***的交互主要包括:定义与外部***相关的发送通道、接收通道、传输队列、远程队列。应用实例将返回消息放到远程队列,MQ管理器自动将返回消息发送给外部***。内部信息处理主要包括:(1)定义用于应用实例读取消息的普通队列。外部***将消息发送到MQ管理器的普通队列,应用实例自动到普通队列里读取消息处理;(2)各个应用实例之间的通信通过定义在该MQ管理器上的topic来实现,一个应用实例修改了共用部分的内容时向这个MQ管理器发一个topic,则其他实例会从这个MQ管理器中接收到这个topic的内容,从而对修改的共用部分进行相应的处理。
但是,本申请的申请人注意到,图1所示的目前现有的基于消息中间件的应用***通信架构至少存在以下问题:
(1)单个MQ管理器使用资源有限导致不同应用实例之间互相挤占资源。
例如,单个MQ管理器能提供的连接通道数有限,而一个应用实例可能有很多线程需要连接MQ管理器,那么当多个应用实例连接时,很容易就超出单个MQ管理器的最大连接通道数,此时多个应用实例很可能会发生互相挤占连接通道的问题。
又如,单个MQ管理器能启动的处理进程有限,而某些区域的业务量可能远远地超过其他区域的业务量,因此这些区域对应的应用实例收发的消息就会较多,当单个MQ管理器处理不过来时,其他应用实例的消息就只能排队等待,迟迟得不到及时地处理,这对于某些实时性要求比较强的业务交易来说,是不能够容忍,容易频繁出现超时报错。
(2)某个应用实例的问题容易影响到其他应用实例。
某个应用实例出现问题时,可能需要停止MQ管理器以配合调试查找出现问题的原因,在排查的这段时间里,其他应用实例就不能正常运行以提供应用服务。
(3)MQ管理器的问题会影响到所有应用实例的运行。
当MQ管理器本身出现问题时,所有应用实例的运行都会受到影响。
发明内容
有鉴于此,本申请提供一种基于消息中间件的多实例多子***应用的通信***,用于解决目前现有的基于消息中间件的应用***通信架构存在的应用实例之间的MQ通信资源互相挤占、应用实例之间相互影响、MQ管理器的问题会影响到所有的应用实例的问题。技术方案如下:
本发明提供一种基于消息中间件的多实例多子***应用的通信***,包括第一子***,所述第一子***包括外部***和多个应用实例,所述第一子***还包括多个应用节点管理器,所述应用节点管理器的个数大于1;
其中,一个应用节点管理器对应连接至少一个应用实例;
所述多个应用节点管理器分别与所述外部***连接。
可选地,所述应用节点管理器的个数与所述应用实例的个数相等,所述多个应用节点管理器与所述多个应用实例一一对应连接。
可选地,所述第一子***还包括:外联网关管理器和应用网关管理器;其中,
所述外联网关管理器与所述外部***连接;
所述应用网关管理器与所述外联网关管理器连接,且所述应用网关管理器分别与各个应用节点管理器连接。
可选地,所述通信***还包括共享MQ管理器和第二子***;其中,
所述第二子***的架构与所述第一子***的架构相同,且所述第二子***中的应用网关管理器和所述第一子***中的应用网关管理器分别与所述共享MQ管理器连接;
所述共享MQ管理器用于实现各子***间topic的转接。
可选地,所述第一子***还包括:第一服务***;
所述第一服务***包括应用网关管理器、应用节点管理器和应用实例,所述第一服务***的架构与所述第一子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
可选地,所述第二子***还包括:第二服务***;
所述第二服务***包括应用网关管理器、应用节点管理器和应用实例,所述第二服务***的架构与所述第二子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
可选地,所述通信***还包括:分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器。
可选地,分别与第二子***中的应用网关管理器和第一子***中的应用网关管理器连接的共享MQ管理器的个数大于1;
分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器的个数大于1。
本申请提供的基于消息中间件的多实例多子***应用的通信***中,第一子***包括外部***、多个应用实例和多个应用节点管理器,该多个应用节点管理器分别与外部***连接。本申请中,应用节点管理器(即MQ管理器)的个数大于1,相比于现有技术中多个应用实例通过连接一个MQ管理器与外部***交互的方式,本申请增加了应用节点管理器的数量,即增加了MQ管理器的使用资源,其中一个应用节点管理器对应连接至少一个应用实例,优选地可以为每个应用实例分别提供一个MQ管理器的方法,这样应用实例之间的MQ通信资源就不会互相挤占,而且应用实例之间不会相互影响,某个MQ管理器发生问题也不会影响到所有的应用实例。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中基于消息中间件的应用***通信架构示意图;
图2为本申请提供的一种基于消息中间件的多实例多子***应用的通信***的结构示意图;
图3为本申请提供的另一种基于消息中间件的多实例多子***应用的通信***的结构示意图;
图4为本申请提供的再一种基于消息中间件的多实例多子***应用的通信***的结构示意图;
图5为本申请提供的再一种基于消息中间件的多实例多子***应用的通信***的结构示意图;
图6为本申请提供的再一种基于消息中间件的多实例多子***应用的通信***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应用***处理的业务可能分散在不同的区域(如亚洲、欧洲、非洲、美洲等),不同的区域具有的差异性可能比较大(比如时差,当想升级应用***时,可能某个区域的业务正在营业,为了升级***让所有区域都停业,往往不符合业务的实际情况)。因此在软件***的开发中,人们往往根据不同区域将应用***分为了不同的应用实例。虽然是将应用***分为了不同的应用实例,但是不可能为每个应用实例都准备一套数据(如数据库表),因此不同应用实例还是会共用一套公共的数据。其中当某一个应用实例修改了共用数据的公共部分时,需要通知其他应用实例,以便其他应用实例及时做出相应的处理。
另一方面,应用***的业务种类可能有多种。不同种类的差异可能比较大(如银行里的对公业务和对私业务,银行的对公客户可能只有十几万,但是对私客户可能达到上千万甚至上亿以上)。虽然是不同种类的业务,但是它们也是会共用应用***的一些公共数据(如一个银行的授信,有对公的授信,也有对私的授信,但是一个银行的总授信在一定时期中是固定的,对公的授信和对私的授信累加起来不应该超过该银行的总授信。当有对公或对私的授信被占用时,该银行的可用总授信量是减少的。不管是对公业务还是对私业务,在开出新的授信之前,都需要知道当前的可用总授信量,避免开出超过当前可用总授信量的授信)。
然而,目前现有的基于消息中间件的通信架构方式往往不能满足多实例多子***应用的需要,本申请的申请人主要从以下几个方面进行了研究:
1)多实例多子***应用中,不同应用实例之间、不同子***之间的业务有差异性。一般的基于消息中间件的通信架构不能够很好地处理多实例多子***的情况,容易出现不同应用实例之间、不同子***之间资源互相挤占的情况,可能导致被挤占的应用实例或子***的业务迟迟得不到处理,这对于某些对实时性要求比较强的业务交易来说是不能忍受的。因此,目前需要解决多实例多子***应用中应用实例之间、子***之间如何避免相互挤占资源的问题。
2)多实例多子***应用中,不同应用实例之间、不同子***之间往往需要共享一部分数据,因此互相之间需要进行通信,使得每个应用实例和每个子***及时知道共享数据的最新情况,以便做出相应的处理。因此,目前需要解决多实例多子***应用中,应用实例之间、子***之间如何相互通信的问题。
3)多实例多子***应用中,每个子***一般有多个应用实例,每个应用实例都会和外部***进行交互,如果没有统一的交互方式,则子***每增加一个应用实例,就需要增加一个新的与外部***的交互方式,这给应用***开发带来了不便。因此,目前需要解决多实例多子***应用中,应用实例之间如何对外提供统一交互的问题。
4)应用实例如果只有单个服务的话,当这个服务挂掉的时候,该应用实例的服务便无法提供,这样不利于***的稳定性。同时,单个服务的应用实例的处理能力有限。因此,目前需要解决多实例多子***应用如何增强***的健壮性和提高***的处理能力的问题。
针对上述问题,本申请提供了多种不同结构的基于消息中间件的多实例多子***应用的通信架构。下面,申请人将依次对本申请提供的多种结构形式的基于消息中间件的多实例多子***应用的通信***进行详细描述。
实施例一
首先,针对现有的基于消息中间件的应用***通信架构采用多个应用实例通过连接一个MQ管理器与外部***交互的方式,存在单个MQ管理器使用资源有限导致不同应用实例之间互相挤占资源、应用实例之间相互影响、MQ管理器发生问题会影响到所有的应用实例的问题,本申请提出了图2所示的基于消息中间件的多实例多子***应用的通信***,该通信***包括第一子***,所述第一子***包括外部***100和多个应用实例200,特别的,本申请中第一子***还包括多个应用节点管理器300,该应用节点管理器的个数大于1。需要说明的是,本申请实施例中,应用节点管理器300实质就是MQ管理器。
本申请实施例中,应用节点管理器300的个数大于1,相比于现有技术中多个应用实例通过连接一个MQ管理器与外部***交互的方式,本申请增加了应用节点管理器300的数量,即增加了MQ管理器的使用资源。
具体在本申请实施例中,一个应用节点管理器300对应连接至少一个应用实例200,且该多个应用节点管理器300分别与外部***100连接。
作为本申请实施例的一个优选实施例,如图3所示,本申请中应用节点管理器300的个数可以与应用实例200的个数相等,即多个应用节点管理器300与多个应用实例200一一对应连接。本申请通过为每个应用实例分别提供一个MQ管理器的方法,这样应用实例之间的MQ通信资源就不会互相挤占,而且应用实例之间不会相互影响,某个MQ管理器发生问题也不会影响到所有的应用实例。
实施例二
进一步地,本申请的申请人注意到,虽然本申请实施例一可以解决应用实例之间的MQ通信资源互相挤占、应用实例之间相互影响、MQ管理器发生问题会影响到所有的应用实例的问题,但实施例一还是存在一些问题的:
(1)由于各个应用节点管理器300相互之间独立,那么当某个应用实例200更改了应用***中共用部分的数据时,其他应用实例200无法知道;
(2)每增加一个新的应用实例200时,就需要针对该新增的应用实例200配置对应的应用节点管理器300与外部***100的交互方式。
为了进一步解决上述问题(1)(2),如图4所示,本申请提出了再一种基于消息中间件的多实例多子***应用的通信***,该通信***中的第一子***进一步还包括:外联网关管理器400和应用网关管理器500。其中,
外联网关管理器400与外部***100连接。
应用网关管理器500与外联网关管理器400连接,且应用网关管理器500同时分别与各个应用节点管理器300连接。
相比于实施例一,本申请实施例二中增加一个应用网关管理器500,该应用网关管理器500与各个应用节点管理器300相连构成一个MQ集群,应用网关管理器500作为整个集群的仓储(记事本),记录整个集群的信息,集群的topic定义在应用网关管理器500中。同时,本申请实施例还增加一个外联网关管理器400,该外联网关管理器400与应用网关管理器500相连,也归属于MQ集群中,所有与外部***100的交互都定义在这个外联网关管理器400中,由这个外联网关管理器400提供与外部***100的统一交互。
本申请实施例二中,集群的topic定义在应用网关管理器500中,各个应用实例200通过应用节点管理器300与应用网关管理器500相连,当应用网关管理器500收到topic时,会将topic转发给各个应用节点管理器300,相应的各个应用实例200会接收到topic,这样各个应用实例200就可以相互通信了。
在外联网关管理器400上定义整个集群的对外信息,这样不管有多少个应用实例200,应用***只需要提供外联网关管理的交互信息给所有外部***100,同时所有外部***100的交互信息只需要在外联网关管理器400上定义一遍,所有外部***100发给应用***的消息都只需要发到外联网关管理器400,由外联网关管理器400去应用网关管理器500中查找实际目的地进行内部转发。
实施例三
申请人对于本申请实施例二提供的基于消息中间件的多实例多子***应用的通信***进行研究后发现,实施例二还存在以下问题:
由于所有种类的业务都在一个应用***中处理,那么对于种类区别度比较大的业务来说,容易出现量大的业务挤占了量小的业务的处理资源,导致量小的业务迟迟得不到处理,这对于某些实时性要求比较强的业务交易来说,容易频频出现交易超时的情况。
针对这个问题,本申请进一步提出了将应用***根据种类区别度比较大的业务分成几个子***的方法,即通信***中可以包括多个子***,如第一子***10、第二子***20等。
然而,当应用***被分为成几个子***之后,几个子***是共用应用***中的一套公用数据,那么当某个子***中的某个应用实例修改了应用***的公用数据时,不仅需要通知到本子***的其他应用实例,也需要通知到其他子***的应用实例。
针对此,如图5所示,本申请提供的基于消息中间件的多实例多子***应用的通信***还可以进一步包括共享MQ管理器600。
本申请实施例中,第二子***20的架构与第一子***10的架构相同,且第二子***20中的应用网关管理器和第一子***10中的应用网关管理器分别与共享MQ管理器600连接。
本申请实施例在多个子***之间构建共享MQ管理器600,某个子***的topic可以通过共享MQ管理器600转发到其他的子***中,这样单个子***的通信方式不需要修改就可以在多个子***中使用了。
具体在本申请实施例中,多个子***之间建立共享MQ管理器600,在某个子***的应用网关管理器500中定义该子***的topic的sub(子主题),指向共享MQ管理器600中的别名,在共享MQ管理器600上定义别名,指向另一个子***的应用网关管理器500上的topic。这样,对于在某个子***上发送的topic,不但这个子***上的所有应用实例200都会收到,而且另一个子***的所有应用实例也会收到。
以图5所示,第一子***10为子***A,第二子***20为子***B进行说明。
子***A和子***B分别对应MQ集群A和MQ集群B,共享MQ管理器1同时属于这两个集群(通过在共享MQ管理器1上定义自己属于这两个集群)。在集群A的应用网关管理器A上定义集群A的topic_A的子主题sub,指向共享MQ管理器1中的别名,在共享MQ管理器中1中定义别名,指向集群B中的topic_B。(共享MQ管理器1因为同属于两个集群,因此可以看得到两个集群的topic,不会出现topic未定义的情况)。
这样集群A的topic就会转发一份给集群B,同理,如果集群B中的topic要转发一份给集群A,只需做同样的操作就可以。下面以IBM MQ为例说明实际操作步骤:
在子***A上的应用网关管理器定义子***A的topic:
DEFINE TOPIC(TOPIC_A)TOPICSTR(/flms/parcache)CLUSTER(FLMSCLUS)PUB(ASPARENT)SUB(ENABLED)WILDCARD(PASSTHRU);
同时定义该topic的sub,指向共享MQ管理器1上的别名ALIAS.TOPIC.A.TO.BDEFINE SUB(SUB_TOPIC_A)TOPICOBJ(TOPIC_A)DEST(ALIAS.TOPIC.A.TO.B);
在共享MQ管理器1上定义别名ALIAS.TOPIC.A.TO.B,执向子***B上的应用网关管理器上的topic
DEFINE QALIAS(ALIAS.TOPIC.A.TO.B)TARGET(TOPIC_B)CLUSTER(FLMSCLUS)TARGTYPE(TOPIC)REPLACE;
在子***B上的应用网关管理器定义子***B的topic
DEFINE TOPIC(TOPIC_B)TOPICSTR(/flms/parcache_b)CLUSTER(FLMSCLUS_B)PUB(ASPARENT)SUB(ENABLED)WILDCARD(PASSTHRU)。
实施例四
申请人对于实施例三提供的基于消息中间件的多实例多子***应用的通信***进行研究后发现,实施例三还存在以下问题:
以图5为例,如果图5中应用节点管理器A3挂掉了,或者应用实例A3挂掉了,那么应用实例A3的业务就没有相应的服务来处理了。显然,单个服务的应用实例的处理能力有限,需要增加***的健壮性和提高***的处理能力。
针对此,如图6所示,本申请在图5的基础上,第一子***还可以进一步包括第一服务***700,该第一服务***700包括应用网关管理器、应用节点管理器和应用实例,且第一服务***700的架构与第一子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
以图6所示为例,第一子***中原有的应用网关管理器为应用网关管理器A1、原有的应用节点管理器包括应用节点管理器A1_1、应用节点管理器A2_1、应用节点管理器A3_1、应用节点管理器A4_1,原有的应用实例包括:对应连接应用节点管理器A1_1的应用实例A1_1、连接应用节点管理器A2_1的应用实例A2_1、连接应用节点管理器A3_1的应用实例A3_1、以及连接应用节点管理器A4_1的应用实例A4_1。
本发明为了增加***的健壮性以及提高***的处理能力,在该第一子***中设置了第一服务***700,该第一服务***700包括应用网关管理器A2、应用节点管理器A1_2、应用节点管理器A2_2、应用节点管理器A3_2、应用节点管理器A4_2,以及分别对应连接应用节点管理器A1_2、应用节点管理器A2_2、应用节点管理器A3_2、应用节点管理器A4_2的应用实例A1_2、应用实例A2_2、应用实例A3_2和应用实例A4_2。
具体地本发明实施例中,第一服务***700中的应用网关管理器A2、应用节点管理器A1_2、应用节点管理器A2_2、应用节点管理器A3_2、应用节点管理器A4_2,以及应用实例A1_2、应用实例A2_2、应用实例A3_2和应用实例A4_2的连接架构,与第一子***中原有的应用网关管理器A1、应用节点管理器A1_1、应用节点管理器A2_1、应用节点管理器A3_1、应用节点管理器A4_1,以及应用实例A1_1、应用实例A2_1、应用实例A3_1和应用实例A4_1的连接架构相同。
其中,应用实例A1_1和应用实例A2_1为同一台机器上的不同应用实例,应用实例A1_1和应用实例A1_2为不同机器上的相同应用实例,其他应用实例同理。那么在实际应用中,以应用实例A1_1为例,当应用实例A1_1挂掉了或者连接应用实例A1_1的应用节点管理器A1_1挂掉了时,本发明实施例可以由应用实例A1_2继续提供服务或者由应用节点管理器A1_2继续提供服务,保证了***的健壮性,提高***的处理能力。
进一步地,本发明实施例中的第二子***还可以进一步包括:第二服务***800,该第二服务***800包括应用网关管理器、应用节点管理器和应用实例,且第二服务***800的架构与第二子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
仍以图6所示为例,第二子***中原有的应用网关管理器为应用网关管理器B1、原有的应用节点管理器包括应用节点管理器B1_1、应用节点管理器B2_1、应用节点管理器B3_1、应用节点管理器B4_1,原有的应用实例包括:对应连接应用节点管理器B1_1的应用实例B1_1、连接应用节点管理器B2_1的应用实例B2_1、连接应用节点管理器B3_1的应用实例B3_1、以及连接应用节点管理器B4_1的应用实例B4_1。
本发明为了增加***的健壮性以及提高***的处理能力,在该第二子***中设置了第二服务***800,该第二服务***800包括应用网关管理器B2、应用节点管理器B1_2、应用节点管理器B2_2、应用节点管理器B3_2、应用节点管理器B4_2,以及分别对应连接应用节点管理器B1_2、应用节点管理器B2_2、应用节点管理器B3_2、应用节点管理器B4_2的应用实例B1_2、应用实例B2_2、应用实例B3_2和应用实例B4_2。
具体地本发明实施例中,第二服务***800中的应用网关管理器B2、应用节点管理器B1_2、应用节点管理器B2_2、应用节点管理器B3_2、应用节点管理器B4_2,以及应用实例B1_2、应用实例B2_2、应用实例B3_2和应用实例B4_2的连接架构,与第二子***中原有的应用网关管理器B1、应用节点管理器B1_1、应用节点管理器B2_1、应用节点管理器B3_1、应用节点管理器B4_1,以及应用实例B1_1、应用实例B2_1、应用实例B3_1和应用实例B4_1的连接架构相同。
其中,应用实例B1_1和应用实例B2_1为同一台机器上的不同应用实例,应用实例B1_1和应用实例B1_2为不同机器上的相同应用实例,其他应用实例同理。那么在实际应用中,以应用实例B1_1为例,当应用实例B1_1挂掉了或者连接应用实例B1_1的应用节点管理器B1_1挂掉了时,本发明实施例可以由应用实例B1_2继续提供服务或者由应用节点管理器B1_2继续提供服务,保证了***的健壮性,提高***的处理能力。
同时更进一步地,通信***还可以进一步包括:分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器。其中,分别与第二子***中的应用网关管理器和第一子***中的应用网关管理器连接的共享MQ管理器的个数大于1;
分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器的个数大于1。
本发明实施例中同时对共享MQ管理器进行了备份。
本申请实施例分别为每个应用实例增加了一份服务(即服务***),即增加相应的应用节点管理器、应用网关管理器、共享MQ管理器,且同时将所有的共享MQ管理器都增加一份备份,这样应用***的健壮性不但大大加强,而且处理能力也随着服务***的增加而增加。
在本申请前述实施例一至实施例四中:
本申请为应用***的子***中的每个应用实例都建立一个MQ管理器(即应用节点管理器300),能够解决应用实例之间互相挤占资源的问题。本申请为应用***中种类区别较大的不同业务建立不同的子***,以解决不同业务之间互相挤占资源的问题。
本申请将应用***中各个子***中的所有应用节点管理器300通过一个特殊功能的MQ管理器(应用网关管理器500,也叫集群仓储)连接起来构成一个MQ集群,在这个特殊功能的MQ管理器中定义topic,子***的不同应用实例通过在MQ集群中收发topic来实现相互之间的通信,能够解决子***中不同应用实例之间相互通信的问题。
本申请通过为应用***中的子***的MQ集群增加一个MQ管理器作为集群的外联网关管理器400,所有与外部***100的交互都通过外联网关管理器400来处理,能够解决子***中不同应用实例对外交互的统一性问题。
本申请将应用***中不同子***的MQ集群,通过共享MQ管理器600连接起来,各子***之间的通信通过共享MQ管理器600转发topic实现,能够解决不同子***之间相互通信的问题。
本申请通过为每个应用实例都增加一份服务,同时增加相应的应用节点管理器、应用网关管理器、共享MQ管理器,并将所有的共享MQ管理器都增加一份备份,以增强应用***的健壮性和应用***的处理能力。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种基于消息中间件的多实例多子***应用的通信***进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种基于消息中间件的多实例多子***应用的通信***,包括第一子***,所述第一子***包括外部***和多个应用实例,其特征在于,所述第一子***还包括多个应用节点管理器,所述应用节点管理器的个数大于1,所述应用节点管理器相互之间独立;
其中,所述应用节点管理器的个数与所述应用实例的个数相等,所述多个应用节点管理器与所述多个应用实例一一对应连接,使得所述应用实例之间不会相互影响,单个应用节点管理器不会影响所有的应用实例;
所述多个应用节点管理器分别与所述外部***连接。
2.根据权利要求1所述的通信***,其特征在于,所述第一子***还包括:外联网关管理器和应用网关管理器;其中,
所述外联网关管理器与所述外部***连接;
所述应用网关管理器与所述外联网关管理器连接,且所述应用网关管理器分别与各个应用节点管理器连接。
3.根据权利要求2所述的通信***,其特征在于,所述通信***还包括共享MQ管理器和第二子***;其中,
所述第二子***的架构与所述第一子***的架构相同,且所述第二子***中的应用网关管理器和所述第一子***中的应用网关管理器分别与所述共享MQ管理器连接;
所述共享MQ管理器用于实现各子***间topic的转接。
4.根据权利要求2或3所述的通信***,其特征在于,所述第一子***还包括:第一服务***;
所述第一服务***包括应用网关管理器、应用节点管理器和应用实例,所述第一服务***的架构与所述第一子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
5.根据权利要求3所述的通信***,其特征在于,所述第二子***还包括:第二服务***;
所述第二服务***包括应用网关管理器、应用节点管理器和应用实例,所述第二服务***的架构与所述第二子***中原有的应用网关管理器、应用节点管理器和应用实例的连接架构相同。
6.根据权利要求5所述的通信***,其特征在于,所述通信***还包括:分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器。
7.根据权利要求6所述的通信***,其特征在于,
分别与第二子***中的应用网关管理器和第一子***中的应用网关管理器连接的共享MQ管理器的个数大于1;
分别与第一服务***中的应用网关管理器和第二服务***中的应用网关管理器连接的共享MQ管理器的个数大于1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811229698.9A CN109257435B (zh) | 2018-10-22 | 2018-10-22 | 基于消息中间件的多实例多子***应用的通信*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811229698.9A CN109257435B (zh) | 2018-10-22 | 2018-10-22 | 基于消息中间件的多实例多子***应用的通信*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109257435A CN109257435A (zh) | 2019-01-22 |
CN109257435B true CN109257435B (zh) | 2021-03-23 |
Family
ID=65046635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811229698.9A Active CN109257435B (zh) | 2018-10-22 | 2018-10-22 | 基于消息中间件的多实例多子***应用的通信*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109257435B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291254B (zh) * | 2020-11-05 | 2023-05-05 | 中国人民银行清算总中心 | 一种用于可靠交易的消息处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458808A (zh) * | 2008-12-31 | 2009-06-17 | 中国建设银行股份有限公司 | 银行管理***、服务器集群和相关方法 |
CN101980152A (zh) * | 2010-10-18 | 2011-02-23 | 华南理工大学 | 一种移动中间件***及其实现方法 |
CN103125097A (zh) * | 2010-09-17 | 2013-05-29 | 甲骨文国际公司 | 在中间件机器环境中执行部分子网初始化 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017166172A1 (en) * | 2016-03-31 | 2017-10-05 | Oracle International Corporation | System and method for integrating a transactional middleware platform with a centralized access manager for single sign-on in an enterprise-level computing environment |
-
2018
- 2018-10-22 CN CN201811229698.9A patent/CN109257435B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458808A (zh) * | 2008-12-31 | 2009-06-17 | 中国建设银行股份有限公司 | 银行管理***、服务器集群和相关方法 |
CN103125097A (zh) * | 2010-09-17 | 2013-05-29 | 甲骨文国际公司 | 在中间件机器环境中执行部分子网初始化 |
CN101980152A (zh) * | 2010-10-18 | 2011-02-23 | 华南理工大学 | 一种移动中间件***及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109257435A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10367852B2 (en) | Multiplexed demand signaled distributed messaging | |
US9021065B2 (en) | Automated topology formation in dynamic distributed environments | |
CN112671882B (zh) | 一种基于微服务的同城双活***和方法 | |
US9246780B2 (en) | System and method for supporting port multiplexing in a server environment | |
US7844851B2 (en) | System and method for protecting against failure through geo-redundancy in a SIP server | |
WO2017181876A1 (zh) | 一种设备状态及资源信息监测方法、相关设备及*** | |
US20140280988A1 (en) | System and method for parallel multiplexing between servers in a cluster | |
CN109873736A (zh) | 一种微服务监控方法及*** | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与*** | |
EP2838243B1 (en) | Capability aggregation and exposure method and system | |
CN108833462A (zh) | 一种面向微服务的自注册服务发现的***及方法 | |
US9846618B2 (en) | System and method for supporting flow control in a distributed data grid | |
CN108600316B (zh) | 云存储服务的数据管理方法、***及设备 | |
CN102437933A (zh) | 一种服务器故障容错***及方法 | |
WO2017185615A1 (zh) | 一种业务处理设备的业务状态确定方法及调度设备 | |
CN105681426A (zh) | 异构*** | |
US20240250918A1 (en) | Node for running container group, and container group management system and method | |
WO2014173366A2 (zh) | 一种实现电信能力群发的方法、装置及*** | |
CN109257435B (zh) | 基于消息中间件的多实例多子***应用的通信*** | |
KR20130130295A (ko) | 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 | |
CN113326100A (zh) | 一种集群管理方法、装置、设备及计算机存储介质 | |
CN107438098A (zh) | 一种动态内容分发方法及其*** | |
CN112835717B (zh) | 一种用于集群的集成应用处理方法和装置 | |
CN114598662A (zh) | 消息队列集群联邦管理***以及方法 | |
CN116980526A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |