CN116112579A - 消息中间件生态兼容方法、装置、系统及可读存储介质 - Google Patents
消息中间件生态兼容方法、装置、系统及可读存储介质 Download PDFInfo
- Publication number
- CN116112579A CN116112579A CN202310118589.4A CN202310118589A CN116112579A CN 116112579 A CN116112579 A CN 116112579A CN 202310118589 A CN202310118589 A CN 202310118589A CN 116112579 A CN116112579 A CN 116112579A
- Authority
- CN
- China
- Prior art keywords
- message
- protocol
- client
- middleware
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 230000006854 communication Effects 0.000 claims abstract description 24
- 238000004891 communication Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 description 39
- 230000015654 memory Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 235000014510 cooky Nutrition 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241001233242 Lontra Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- 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/2871—Implementation details of single intermediate entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种消息中间件生态兼容方法、装置、系统及可读存储介质,涉及通信技术领域,能够不同消息中间件之间的兼容。该方法包括:在满足第一条件时,通过第一服务端中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;基于第一中间件协议执行与第一条件对应的第一操作;第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,第一操作包括基于第一中间件协议执行解析第一消息;和/或,第一条件包括需求向第一客户端发送第二消息,第一操作包括基于第二消息中间件协议封装第二消息;第一消息中间件协议与第一服务端原本支持的第二中间件协议不同。本申请实施例用于不同消息中间件的兼容过程中。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种消息中间件生态兼容方法、装置、系统及可读存储介质。
背景技术
现有生产集群有多种消息中间件,如Pulsar消息中间件、Qmdd消息中间件等。
然而,过多种类消息中间件的维护对于维护人员构成挑战。因此如何维护多种消息中间件是亟待解决的问题。
发明内容
本申请提供一种消息中间件生态兼容方法、装置、系统及可读存储介质,能够实现不同消息中间件之间的兼容。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种消息中间件生态兼容方法,该方法包括:第一服务端在满足第一条件的情况下,通过所述第一服务端中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;
所述第一服务端基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议执行解析所述第一消息;和/或,所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;其中,所述第一消息中间件协议与所述第一服务端原本支持的第二中间件协议不同。
基于上述技术方案,本申请实施例提供的消息中间件生态兼容方法,由于可以在满足第一条件的情况下,通过第一消息适配器模拟第一消息中间件协议,并以第一消息中间件协议执行与第一条件对应的第一操作。即可以通过第一消息适配器模拟与第一服务端原本支持的第二消息中间件协议不同的第一消息中间件协议,从而可以使得第一服务端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一服务端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
在第一方面的第一种可能的实现方式中,所述基于模拟的所述第一中间件协议执行解析所述第一消息之后,所述方法还包括:
所述第一服务端基于第二消息中间件协议备份所述第一消息。
在第一方面的第二种可能的实现方式中,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
在第一方面的第三种可能的实现方式中,所述第一协议适配器基于所述第一消息中间件协议所依托的开源的服务连接器的运行环境实现。
在第一方面的第四种可能的实现方式中,所述第一服务端为Qmdd服务端,所述第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;
其中,所述第一协议适配器为Pulsar协议所依托jetty。
第二方面,本申请提供一种消息中间件生态兼容方法,该方法包括:第一客户端在满足第二条件的情况下,通过所述第一客户端中的第二协议适配器模拟第一服务端原始支持的第二消息中间件协议;
所述第一客户端基于模拟的所述第二中间件协议,执行与所述第二条件对应的第二操作;
其中,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议解析所述第三消息;和/或,
所述第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息;
其中,所述第二消息中间件协议与所述第一客户端原本支持的第一中间件协议不同。
基于上述技术方案,本申请实施例提供的消息中间件生态兼容方法,由于可以在满足第二条件的情况下,通过第二消息适配器模拟第二消息中间件协议,并以第二消息中间件协议执行与第二条件对应的第二操作。即可以通过第二消息适配器模拟与第一客户端原本支持的第一消息中间件协议不同的第二消息中间件协议,从而可以使得第一客户端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一客户端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
在第二方面的第一种可能的实现方式中,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
在第二方面的第二种可能的实现方式中,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端,所述第二消息中间件协议为Pulsar协议;
其中,所述第二协议适配器基于Pulsar协议所依托的jetty实现。
第三方面,本申请提供一种消息中间件生态兼容系统,该系统包括:第一服务端和第一客户端;所述第一服务端包括第一协议适配器,和/或,所述第一客户端包括第二协议适配器;
所述第一服务端用于在满足第一条件的情况下,通过所述第一协议适配器模拟所述第一客户端原始支持的第一消息中间件协议,并基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
所述第一客户端用于在满足第二条件的情况下,通过所述第二协议适配器模拟所述第一服务端原始支持的第二消息中间件协议,并基于模拟的所述第二中间件协议执行与所述第二条件对应的第二操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议解析所述第一消息;和/或,
所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;
其中,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议解析所述第三消息;和/或,
所述第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息;
其中,所述第一消息中间件协议与所述第二中间件协议不同。
第四方面,本申请提供一种消息中间件生态兼容装置,所述装置包括:处理单元;
所述处理单元,用于在在满足第一条件的情况下,通过所述装置中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;并基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议解析所述第一消息;和/或,
所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;
其中,所述第一消息中间件协议与所述装置原本支持的第二中间件协议不同。
在第四方面的第一种可能的实现方式中,所述处理单元,还用于在解析所述第一消息之后,基于所述第二消息中间件协议备份所述第一消息。
在第四方面的第二种可能的实现方式中,所述装置基于第二消息中间件协议备份所述第一消息之前,所述方法还包括:
所述装置开启服务协议方式;
所述装置调用所述第二消息中间件协议。
在第四方面的第三种可能的实现方式中,所述第一客户端为Qmdd客户端,所述装置为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述装置为Qmdd客户端。
在第四方面的第四种可能的实现方式中,所述第一协议适配器基于所述第一消息中间件协议所依托的开源的服务连接器的运行环境实现。
在第四方面的第五种可能的实现方式中,所述装置为Qmdd服务端,所述第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;
其中,所述第一协议适配器基于Pulsar协议所依托的jetty实现。
第五方面,本申请提供一种消息中间件生态兼容装置,所述装置包括:处理单元;
所述处理单元,用于在满足第二条件的情况下,通过所述装置中的第二协议适配器模拟第一服务端原始支持的第二消息中间件协议;
并基于模拟的所述第二中间件协议,执行与所述第二条件对应的第二操作;
其中,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议解析所述第三消息;和/或,
所述第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息;
其中,所述第二消息中间件协议与所述装置原本支持的第二中间件协议不同。
在第五方面的第一种可能的实现方式中,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
在第五方面的第二种可能的实现方式中,所述装置为Qmdd客户端,所述第一服务端为Pulsar服务端,所述第二消息中间件协议为Pulsar协议;
其中,所述第二协议适配器基于Pulsar协议所依托的jetty实现。
第六方面,本申请提供了一种消息中间件生态兼容装置,该装置包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法。
第七方面,本申请提供了一种消息中间件生态兼容装置,该装置包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第二方面和第二方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法。
第八方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行如第一方面和第一方面的任一种可能的实现方式中描述的消息中间件生态兼容方法。
第九方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行如第二方面和第二方面的任一种可能的实现方式中描述的消息中间件生态兼容方法。
第十方面,本申请实施例提供一种包含指令的计算机程序产品,当计算机程序产品在消息中间件生态兼容装置上运行时,使得消息中间件生态兼容装置执行如第一方面和第一方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法,或者使得消息中间件生态兼容装置执行如第二方面和第二方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法。
第十一方面,本申请实施例提供一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法;或,以实现如第二方面和第二方面的任一种可能的实现方式中所描述的消息中间件生态兼容方法。
具体的,本申请实施例中提供的芯片还包括存储器,用于存储计算机程序或指令。
附图说明
图1为本申请实施例提供的一种消息中间件生态兼容方法的流程图;
图2为本申请实施例提供的另一种消息中间件生态兼容方法的流程图;
图3为本申请实施例提供的一种消息中间件生态兼容系统的结构示意图;
图4为本申请实施例提供的另一种消息中间件生态兼容系统的结构示意图;
图5为本申请实施例提供的基于Pulsar的消息中间件的多机房生态兼容系统的结构示意图;
图6为本申请实施例提供的一种消息中间件生态兼容装置的结构示意图;
图7为本申请实施例提供的另一种消息中间件生态兼容装置的结构示意图;
图8为本申请实施例提供的又一种消息中间件生态兼容装置的可能的结构示意图;
图9为本申请实施例提供的芯片的结构示意图。
具体实施方式
下面结合附图对本申请实施例提供的消息中间件生态兼容方法、装置、系统及可读存储介质进行详细地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
以下,对本申请实施例涉及的名词进行解释,以方便读者理解。
(1)Qmdd:一种基于netty的自定义协议实现的分布式消息中间件,采用二阶段提交的方式(2pc)实现了分布式事务,用于处理核心订单业务,以中国自研的数据库做为数据落地的存储介质。数据落地可以理解为数据的备份或保存。
其中,netty是一个java开源框架。JBOSS是一个开放源代码的应用服务器。
(2)Pulsar:一种基于Pulsar的开源流式消息中间件。
(3)协议适配器:一种合并协议的实现方式。
现有生产集群有多种消息中间件,如Pulsar消息中间件、Qmdd消息中间件等。然而,过多种类消息中间件的维护对于维护人员构成挑战。因此如何维护多种消息中间件是亟待解决的问题。
进一步地,对于流式消息中间件尚不具备可控性,而之前自研的消息中间件Qdmm因为技术底层的原因,尚无法应用于流式场景。
为了解决现有技术中,无法维护多种消息中间件的问题,本申请提供了一种息中间件生态兼容方法,该方法包括:第一服务端在满足第一条件的情况下,通过所述第一服务端中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;所述第一服务端基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议解析所述第一消息;和/或,所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息。如此,由于可以在满足第一条件的情况下,通过第一消息适配器模拟第一消息中间件协议,并以第一消息中间件协议执行与第一条件对应的第一操作。即可以通过第一消息适配器模拟与第一服务端原本支持的第二消息中间件协议不同的第一消息中间件协议,从而可以使得第一服务端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一服务端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
需要说明的是,采用本案例方式可以进行自研消息中间件(如Qmdd)的迭代演进,以便最终实现生产环境的统一、以及通过自主可控的消息中间件承担生产所有(包含核心交易和流式场景)的业务。
本申请消息中间件生态兼容方法应用于消息中间件生态兼容系统中。对于消息中间件生态兼容系统的描述将在下述实施例中进行详细描述,为了避免重复,此处不予赘述。
如图1所示,为本申请实施例提供的消息中间件生态兼容方法的流程图,该方法包括S101和S102。
S101、第一服务端在满足第一条件的情况下,通过第一服务端中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议。
S102、第一服务端基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作。
其中,方式1中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议解析所述第一消息;和/或,方式2中,所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息。
本申请实施例中,所述第一消息中间件协议与所述第一服务端原本支持的第二中间件协议不同。
本申请实施例中,各服务端和客户端均有且只有一个原本支持的消息中间件协议。
例如,Qmdd客户端原本支持Qmdd协议,Pulsar客户端原本支持Pulsar协议。
又例如,Qmdd服务端原本支持Qmdd协议,Pulsar服务端原本支持Pulsar协议。
在方式2中,第一服务端基于模拟第一消息中间件协议之后,可以调用或生成第一消息中间件协议对应的标签,然后使用该标签封装第一消息。本申请实施例中,该标签用于客户端识别封装消息的协议。
本申请实施例中,服务端可以使用不同标签封装消息,以将封装后的消息可以发送到到标签对应的客户端。
可以理解,在方式2中,第一服务端封装第二消息之后,可以向第一客户端发送第二消息。由于第二消息基于第一客户端原本支持的消息中间件协议封装,因此使得第一客户端能够根据其原本支持的消息中间件协议解析第二消息,以获知第二消息中的内容。
在本申请实施例提供的消息中间件生态兼容方法中,由于可以在满足第一条件的情况下,通过第一消息适配器模拟第一消息中间件协议,并以第一消息中间件协议执行与第一条件对应的第一操作。即可以通过第一消息适配器模拟与第一服务端原本支持的第二消息中间件协议不同的第一消息中间件协议,从而可以使得第一服务端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一服务端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
可选地,在上述方式1中,即在第一服务端基于模拟的所述第一中间件协议执行解析所述第一消息之后,本申请实施例提供的消息中间件生态兼容方法还可以包括下述的S103。
S103、第一服务端基于第二消息中间件协议备份第一消息。
本申请实施例中,第一服务端基于第二消息中间件协议备份第一消息可以理解为:第一服务端采用第二消息中间件,将第一消息封装为一个文件,然后以文件形式存储第一消息。
可选地,第一服务端基于第二消息中间件协议备份第一消息之前,第一服务端可以开启服务协议方式,并调用第二消息中间件协议。
本申请实施例中,第一服务端开启服务协议方式可以理解为,第一服务端进入服务协议调用或选择模式。
例如,第一服务端开启服务协议方式,具体可以为:将配置文件broker conf中的Qmdd协议已启用(Qmdd protocol enabled)能力设置为真(true)。在第一服务端将brokerconf中的Qmdd protocol enabled设置为true之后,第一服务端据此设置,在进行初始化时,加载对应的第二消息中间件协议。
如此,相比于使用数据库备份消息的方式,使用文件备份消息可以提升存储性能,满足处理流式场景的业务需求。
可选地,所述第一客户端可以为Qmdd客户端,所述第一服务端为可以Pulsar服务端;或者,所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。当然,实际实现中,第一客户端和第一服务端还可以为原本支持的消息中间件不同的客户端和服务端。
可以看出,当第一客户端可以为Qmdd客户端,所述第一服务端为可以Pulsar服务端时,Pulsar服务端可以消费Qmdd客户端发送的消息,并且可以向Qmdd客户端发送消息。如此可以使得Pulsar服务端能够兼容Qmdd消息中间件。
可以看出,当第一客户端可以为Pulsar客户端,所述第一服务端为可以Qmdd服务端时,Qmdd服务端可以消费Pulsar客户端发送的消息,并且可以向Pulsar客户端发送消息。如此可以使得Qmdd服务端能够兼容Pulsar消息中间件。
可选地,第一服务端为Qmdd服务端,第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;其中,所述第一协议适配器基于Pulsar协议所依托的运行环境jetty实现。
Jetty是一个开源的servlet容器。
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
可选地,第一协议适配器基于第一消息中间件协议所依托的开源的服务连接器的运行环境实现。如此可以提高消息中间件模拟的准确性。
如图2所示,为本申请实施例提供的消息中间件生态兼容方法的流程图,该方法包括S201和S202。
S201、第一客户端在满足第二条件的情况下,通过第一客户端中的第二协议适配器模拟第一服务端原始支持的第二消息中间件协议。
S202、第一客户端基于模拟的所述第二中间件协议,执行与所述第二条件对应的第二操作。
其中,方式3,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议执行解析所述第三消息;和/或,方式4,第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息;
其中,所述第二消息中间件协议与所述第一客户端原本支持的第一中间件协议不同。
在本申请实施例提供的消息中间件生态兼容方法中,由于可以在满足第二条件的情况下,通过第二消息适配器模拟第二消息中间件协议,并以第二消息中间件协议执行与第二条件对应的第二操作。即可以通过第二消息适配器模拟与第一客户端原本支持的第一消息中间件协议不同的第二消息中间件协议,从而可以使得第一客户端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一客户端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
可选地,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;或者,所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
可以看出,当第一服务端可以为Qmdd服务端,所述第一客户端为可以kafka客户端时,Qmdd服务端可以消费kafka客户端发送的消息,并且可以向kafka客户端发送消息。如此可以使得Qmdd服务端能够兼容Pulsar消息中间件。
可以看出,当第一客户端可以为kafka客户端,所述第一服务端为可以Qmdd服务端时,Qmdd服务端可以消费kafka客户端发送的消息,并且可以向kafka客户端发送消息。如此可以使得Qmdd服务端能够兼容Pulsar消息中间件。
可选地,所述第一客户端为Qmdd客户端,所述第一服务端为kafka服务端,所述第二消息中间件协议为Pulsar协议;其中,所述第二协议适配器基于Pulsar协议所依托的jetty实现。
对于图2所示的方法实施例中其他描述,参见如图1所示的方法实施例中的相关描述。
如图3所示,为本申请实施例提供的消息中间件生态兼容系统的流程图,该消息中间件生态兼容系统可以包括:第一服务端和第一客户端,所述第一客户端包括第一协议适配器,和/或,所述第一服务端包括第二协议适配器。
第一服务端用于在满足第一条件的情况下,通过所述第一协议适配器模拟所述第一客户端原始支持的第一消息中间件协议,并基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
第一客户端用于在满足第二条件的情况下,通过所述第二协议适配器模拟所述第一服务端原始支持的第二消息中间件协议,并基于模拟的所述第二中间件协议执行与所述第二条件对应的第二操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议执行解析所述第一消息;和/或,第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息。
其中,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议执行解析所述第三消息;和/或,所述第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息。
其中,所述第一消息中间件协议与所述第二中间件协议不同。
对于消息中间件生态兼容系统中的其他描述,参见上述方法实施例中的相关描述。
可选地,上述消息中间件生态兼容系统中还可以包括:第二客户端和第二服务端中的至少一项。
其中,第二客户端原本支持第二消息中间件协议,第二服务端原本支持第一消息中间件协议。
例如,第一消息中间件协议为Qmdd协议,第二消息中间件协议为Pulsar协议。那么:上述第一客户端为Qmdd客户端,第二服务端为Qmdd客户端,第二客户端为kafka客户端,第二服务端为kafka服务端。
如此,一方面,由于消息中间件生态兼容系统中的第一服务端可以在满足第一条件的情况下,通过第一消息适配器模拟第一消息中间件协议,并以第一消息中间件协议执行与第一条件对应的第一操作。即可以通过第一消息适配器模拟与第一服务端原本支持的第二消息中间件协议不同的第一消息中间件协议,从而可以使得第一服务端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一服务端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。另一方面,由于消息中间件生态兼容系统中的可以在满足第二条件的情况下,通过第二消息适配器模拟第二消息中间件协议,并以第二消息中间件协议执行与第二条件对应的第二操作。即可以通过第二消息适配器模拟与第一客户端原本支持的第一消息中间件协议不同的第二消息中间件协议,从而可以使得第一客户端可以解析以其不支持的消息中间件协议封装的消息,或者可以以第一客户端不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
如图4所示,本申请实施例提供的一种基于Pulsar的消息中间件生态兼容系统,包括:Pulsar、目标客户端和目标集群,且Pulsar隔离在目标客户端和目标集群之间;所述目标集群包括:生产态集群,如Qmdd集群;目标客户端可以包括:生产态客户端,如Qmdd客户端、迁移的生产态客户端,如Pulsar客户端;
目标客户端可以访问生产态集群;
生产态集群可以基于Pulsar所依托的jetty实现Qmdd的本身的协议。
如此,可以实现生产态集群的升级,并且在生产态集群升级后,可以使得生产态集群可以兼容Qmdd,并向原有Qmdd业务提供服务。
可选地,目标集群还可以包括迁移的生产态集群可以为:Pulsar集群。
可选地,生产态集群可以包括缓存代理(borker)模块。其中,borker可以基于Pulsar所依托的jetty实现Qmdd的本身的协议。
可以理解,集群中的每个实例节点都是一个服务端。
可选地,borker模块可以为Pulsar borker模块。
可选地,Pulsar borker模块将由生产态集群中Qmdd文件库(lib)的协议解析得到的Qmdd协议(protocol)集成到Pulsar borker模块。以使得Pulsar borker模块可以基于Pulsar所依托的jetty实现Qmdd的本身的协议。
可选地,所述生产态集群的Qmdd protocol可以以组建形式集成到Pulsar borker模块。
本申请实施例中,borker模块可以在Pulsar上注册路径;目标客户端可以根据broker模块在Pulsar的注册路径获取生产集群地址,并实现与生产集群的通讯。
可选地,当broker模块为Pulsar broker模块;Pulsar broker模块在Pulsar上注册的路径可以为:Qmdd/testnode/broker。从而目标客户端根据Qmdd/testnode/broker,获取生产集群的地址,并实现与生产集群的通讯。
可选地,borker模块可以在Pulsar上注册路径,包括:
针对所述迁移的生产态集群的protocol和所述生产态集群的protocol分别注册路径。从而:迁移的生产态客户端根据broker模块在所述Pulsar上注册的与迁移的生产态protocol对应的路径获取生产态集群的地址,实现通信;
所述生产态客户端根据broker模块在所述Pulsar上注册得与生产态集群的protocol对应的路径获取生产态集群的地址,实现通信。
可选地,生产态集群还可以包括内存排序模块,例如bookeeper模块。其中,内存排序模块用于为生产态集群待备份或存储的信息排序。
可选地,生产态集群中的bookeeper模块也可以在Pulsar上注册路径。具体的,bookeeper模块在Pulsar上的注册路径可以为:Qmdd/bookeeper。
生产态客户端和迁移的生产态客户端均根据内存排序模块在Pulsar上注册的路径,获取生产态集群的地址,并保存通讯过程中产生的通信信息。
可选地,所述内存排序模块连接有存储器,客户端通过存储器保存通讯信息。
可选地,broker模块可以称为协议适配器。
可选地,生产态集群中可以包括测试态集群。具体的,可以将生产态中的部分节点(如服务端)转换为升级的测试节点(如服务端),使得测试节点构成测试态集群。相应地,可以将生产态客户端中的部分客户端转换为升级的测试客户端,使得测试客户端构成测试态集群。
可以理解,本申请实施例提供的基于Pulsar的消息中间件生态兼容系统可以实现:
1)协议的适配融合。具体的,采用jetty适配自由Qmdd协议,并基于基座进行协议转换。如此,使得生产中所有消息中间件集群均可以统一为Qmdd,做到统一维护,且自主可控。
2)自定义协议的分级存储。具体的,利用bookeeper实现自定义协议的分级存储实现。由于本方案采用以Pulsar为基座的协议适配器方式,而Pulsar基座拥有分级存储的方式,因此可以实现Qmdd和Qmdd老集群可以无缝迁移到新Qmdd集群。
3)自有Qmdd适配无缝迁移。具体的,原有Qmdd集群仅变更指向可以完成对应迁移。
进一步地,本申请实施例提供的基于Pulsar的消息中间件生态兼容可以应用于基于Pulsar的消息中间件的多机房生态兼容系统。
具体的,如图5所述,系统包括机房A和机房B,机房A为生产机房,机房B为容灾机房。可以看出,机房A中的各存储节点之间可以实现数据的实时同步;同样的,机房B中的各存储节点之间可以实现数据的实时同步。并且,机房A的存储节点与机房B的存储节点之间可以通过数据同步(Otter)工具跨机房实现数据同步。
针对图4所述的系统,本申请实施例还提供了一种基于Pulsar的消息中间件生态兼容方法,应用于基于Pulsar的消息中间件生态兼容系统中,该方法包括以下步骤:
S01、修改broker模块配置;
具体的,修改节点的broker config文件,将集群插件Qmdd protocol设置为真,即将Qmdd protocol设置为开启模式。
S02、修改bookeeper配置。
具体的,修改节点的bookeeper config文件,将集群插件Qmdd protocol设置为真,即Qmdd protocol设置为开启模式。
S03、滚动热加载并进行升级节点的业务测试和压力测试。
如此可以使Qmdd客户端根据Pulsar上qdmm代理模块的路径获取地址,实现通讯。
S04、进行配置主题的对应业务测试。
需要说明的是,需要重复SB01至SB04,直至所有业务完成更替。
本申请实施例可以根据上述方法示例对消息中间件生态兼容装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图6所示,为本申请实施例提供的一种消息中间件生态兼容装置的结构示意图,该装置包括:处理单元601。
所述处理单元601,用于在在满足第一条件的情况下,通过所述装置中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;并基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议执行解析所述第一消息;和/或,
所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;
其中,所述第一消息中间件协议与所述装置原本支持的第二中间件协议不同。
可选地,所述处理单元601,还用于在解析所述第一消息之后,基于所述第二消息中间件协议备份所述第一消息。
可选地,所述第一客户端为Qmdd客户端,所述装置为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述装置为Qmdd客户端。
可选地,所述第一协议适配器为基于所述第一消息中间件协议所依托的开源的服务连接器运行环境实现。
可选地,上述装置为Qmdd服务端,所述第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;
其中,所述第一协议适配器基于Pulsar协议所依托的jetty实现。
在本申请实施例提供的消息中间件生态兼容装置中,由于可以在满足第一条件的情况下,通过第一消息适配器模拟第一消息中间件协议,并以第一消息中间件协议执行与第一条件对应的第一操作。即可以通过第一消息适配器模拟与消息中间件生态兼容装置原本支持的第二消息中间件协议不同的第一消息中间件协议,从而可以使得消息中间件生态兼容装置可以解析以其不支持的消息中间件协议封装的消息,或者可以以消息中间件生态兼容装置不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
在通过硬件实现时,本申请实施例中处理单元601可以集成在处理器上。具体实现方式如图8所示。
如图7所示,为本申请实施例提供的一种消息中间件生态兼容装置的结构示意图,该装置包括:处理单元701。
所述处理单元701,用于在满足第二条件的情况下,通过所述装置中的第二协议适配器模拟第一服务端原始支持的第二消息中间件协议;
并基于模拟的所述第二中间件协议,执行与所述第二条件对应的第二操作;
其中,所述第二条件包括接收到第一服务端发送的以所述第二消息中间件协议封装的第三消息,所述第二操作包括基于模拟的所述第二中间件协议解析所述第三消息;和/或,
所述第二条件包括需求向所述第一服务端发送第四消息,所述第二操作包括基于模拟的所述第二消息中间件协议封装所述第四消息;
其中,所述第二消息中间件协议与所述装置原本支持的第二中间件协议不同。
可选地,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
可选地,上述装置为Qmdd客户端,所述第一服务端为Pulsar服务端,所述第二消息中间件协议为Pulsar协议;
其中,所述第二协议适配器基于Pulsar协议所依托的jetty实现。
本申请实施例提供的消息中间件生态兼容装置中,由于可以在满足第二条件的情况下,通过第二消息适配器模拟第二消息中间件协议,并以第二消息中间件协议执行与第二条件对应的第二操作。即可以通过第二消息适配器模拟与消息中间件生态兼容装置原本支持的第一消息中间件协议不同的第二消息中间件协议,从而可以使得消息中间件生态兼容装置可以解析以其不支持的消息中间件协议封装的消息,或者可以以消息中间件生态兼容装置不支持的消息中间件协议封装消息。如此可以提高消息中间件的兼容性。
在通过硬件实现时,本申请实施例中的处理单元701可以集成在处理器上。具体实现方式如图8所示。
图8示出了上述实施例中所涉及的图6或图7所示的消息中间件生态兼容装置的又一种可能的结构示意图。该消息中间件生态兼容装置包括:处理器302和通信接口303。处理器302用于对消息中间件生态兼容装置的动作进行控制管理,例如,执行上述处理单元601或处理单元701执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口303用于支持消息中间件生态兼容装置与其他网络实体的通信。消息中间件生态兼容装置还可以包括存储器301和总线304,存储器301用于存储消息中间件生态兼容装置的程序代码和数据。
其中,存储器301可以是消息中间件生态兼容装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
上述处理器302可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线304可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图9是本申请实施例提供的芯片170的结构示意图。芯片170包括一个或两个以上(包括两个)处理器1710和通信接口1730。
可选的,该芯片170还包括存储器1740,存储器1740可以包括只读存储器和随机存取存储器,并向处理器1710提供操作指令和数据。存储器1740的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
在一些实施方式中,存储器1740存储了如下的元素,执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
在本申请实施例中,通过调用存储器1740存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
其中,上述处理器1710可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,单元和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,单元和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器1740可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线1720可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线1720可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述第一服务端侧方法实施例或第一客户端侧方法实施例中的消息中间件生态兼容方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得该计算机执行上述第一服务端侧方法实施例或第一客户端侧方法实施例中的消息中间件生态兼容方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本发明的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行如图1或图2所述的消息中间件生态兼容方法。
由于本发明的实施例中的消息中间件生态兼容装置、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种消息中间件生态兼容方法,其特征在于,所述方法包括:
第一服务端在满足第一条件的情况下,通过所述第一服务端中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;
所述第一服务端基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议执行解析所述第一消息;和/或,
所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;
其中,所述第一消息中间件协议与所述第一服务端原本支持的第二中间件协议不同。
2.根据权利要求1所述的方法,其特征在于,所述基于模拟的所述第一中间件协议执行解析所述第一消息之后,所述方法还包括:
所述第一服务端基于所述第二消息中间件协议备份所述第一消息。
3.根据权利要求1所述的方法,其特征在于,所述第一客户端为Qmdd客户端,所述第一服务端为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述第一服务端为Qmdd客户端。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一协议适配器基于所述第一消息中间件协议所依托的开源的服务连接器的运行环境实现。
5.根据权利要求4所述的方法,其特征在于,所述第一服务端为Qmdd服务端,所述第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;
其中,所述第一协议适配器基于Pulsar协议所依托的jetty实现。
6.一种消息中间件生态兼容装置,其特征在于,所述装置包括:处理单元;
所述处理单元,用于在在满足第一条件的情况下,通过所述装置中的第一协议适配器模拟第一客户端原始支持的第一消息中间件协议;并基于模拟的所述第一中间件协议执行与所述第一条件对应的第一操作;
其中,所述第一条件包括接收到第一客户端发送的以第一消息中间件协议封装的第一消息,所述第一操作包括基于模拟的所述第一中间件协议执行解析所述第一消息;和/或,
所述第一条件包括需求向所述第一客户端发送第二消息,所述第一操作包括基于模拟的所述第二消息中间件协议封装所述第二消息;
其中,所述第一消息中间件协议与所述装置原本支持的第二中间件协议不同。
7.根据权利要求6所述的装置,其特征在于,
所述处理单元,还用于在解析所述第一消息之后,基于所述第二消息中间件协议备份所述第一消息。
8.根据权利要求6所述的装置,其特征在于,所述第一客户端为Qmdd客户端,所述装置为Pulsar服务端;
或者,
所述第一客户端为Pulsar客户端,所述装置为Qmdd客户端。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述第一协议适配器为基于所述第一消息中间件协议所依托的开源的服务连接器运行环境实现。
10.根据权利要求9所述的装置,其特征在于,所述装置为Qmdd服务端,所述第一客户端为Pulsar客户端,所述第一消息中间件协议为Pulsar协议;
其中,所述第一协议适配器基于Pulsar协议所依托的jetty实现。
11.一种消息中间件生态兼容装置,其特征在于,包括:处理器和通信接口;所述通信接口和所述处理器耦合,所述处理器用于运行计算机程序或指令,以实现如权利要求1至5任一项中所述的消息中间件生态兼容方法。
12.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当计算机执行该指令时,所述计算机执行如权利要求1至5中任一项所述的消息中间件生态兼容方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310118589.4A CN116112579A (zh) | 2023-01-30 | 2023-01-30 | 消息中间件生态兼容方法、装置、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310118589.4A CN116112579A (zh) | 2023-01-30 | 2023-01-30 | 消息中间件生态兼容方法、装置、系统及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116112579A true CN116112579A (zh) | 2023-05-12 |
Family
ID=86263598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310118589.4A Pending CN116112579A (zh) | 2023-01-30 | 2023-01-30 | 消息中间件生态兼容方法、装置、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116112579A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909063A (zh) * | 2019-11-28 | 2020-03-24 | 蜂助手股份有限公司 | 一种用户行为的分析方法、装置、应用服务器及存储介质 |
CN115396499A (zh) * | 2022-07-04 | 2022-11-25 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件生态兼容系统及方法 |
CN115567611A (zh) * | 2022-08-15 | 2023-01-03 | 深圳市酷开网络科技股份有限公司 | 消息推送方法及装置、系统、存储介质、电子设备 |
-
2023
- 2023-01-30 CN CN202310118589.4A patent/CN116112579A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909063A (zh) * | 2019-11-28 | 2020-03-24 | 蜂助手股份有限公司 | 一种用户行为的分析方法、装置、应用服务器及存储介质 |
CN115396499A (zh) * | 2022-07-04 | 2022-11-25 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件生态兼容系统及方法 |
CN115567611A (zh) * | 2022-08-15 | 2023-01-03 | 深圳市酷开网络科技股份有限公司 | 消息推送方法及装置、系统、存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866383B (zh) | 一种接口调用方法、装置及终端 | |
CN111158690B (zh) | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 | |
CN111651219A (zh) | 一种多模块项目配置文件管理的方法及设备 | |
CN108804100B (zh) | 创建界面元素的方法、装置、存储介质及移动终端 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
US10353700B1 (en) | Code base sharing between standalone and web-based versions of an application via an emulated network communication channel | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
CN107040539B (zh) | 一种协议数据包构建方法、装置及计算机系统 | |
CN111324395B (zh) | 调用方法、装置和计算机可读存储介质 | |
CN115509563B (zh) | 镜像文件制作方法、装置、设备及介质 | |
CN116112579A (zh) | 消息中间件生态兼容方法、装置、系统及可读存储介质 | |
CN109857430B (zh) | 跨容器离线包的数据处理方法、支付方法、装置及客户端 | |
CN106951288B (zh) | 一种热更资源的开发、应用方法及装置 | |
CN114564241A (zh) | 硬件设备的访问方法、装置、计算机设备和存储介质 | |
CN113791870A (zh) | 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统 | |
CN112423117B (zh) | Web端视频播放方法、装置及计算机设备 | |
CN116264550A (zh) | 资源的切片处理方法和装置、存储介质及电子装置 | |
CN113986312A (zh) | 软件升级方法、装置、电子设备及计算机可读存储介质 | |
CN111309322A (zh) | 一种基于规则式的响应式智能应用开发系统 | |
CN112714148A (zh) | 一种界面配置方法、装置、设备及介质 | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 | |
CN114443316B (zh) | 一种对象访问方法、装置及电子设备 | |
CN114826994B (zh) | 用户环境回放方法、系统、电子设备及可读存储介质 | |
CN113176928B (zh) | 一种异构虚拟机的运行方法和装置 | |
CN112748981B (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 |