CN113923248A - 一种通用mq交互方法、***、装置及存储介质 - Google Patents
一种通用mq交互方法、***、装置及存储介质 Download PDFInfo
- Publication number
- CN113923248A CN113923248A CN202111156541.XA CN202111156541A CN113923248A CN 113923248 A CN113923248 A CN 113923248A CN 202111156541 A CN202111156541 A CN 202111156541A CN 113923248 A CN113923248 A CN 113923248A
- Authority
- CN
- China
- Prior art keywords
- generic
- message
- strategy
- task
- connection
- 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 41
- 230000003993 interaction Effects 0.000 title claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002452 interceptive effect Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及软件研发技术领域,用于适配多个类型的MQ。具体公开了一种通用MQ交互方法、***、装置及存储介质,该方法包括:配置MQ的类型,以及MQ服务器地址;与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;若存在连接,则注册发送者和订阅消费者;执行发送任务和消费任务。
Description
技术领域
本申请涉及软件开发技术领域,尤其涉及一种通用MQ交互方法、***、装置及存储介质。
背景技术
目前市场上的MQ非常多:RabbitMQ、RocketMQ、ZeroMQ、Kafka、IBM WebSphere等。各个MQ有各自的特点和适用场景,而一个项目在本地开放是使用一种MQ,比如RabbitMQ,但是卖给客户的时候,客户原先有一套消息***比如:RocketMQ,这个时候客户要求业务方接入现有的消息***,这个时候现有及时会按如下方式解决:
现有的MQ厂商都提供了各自的客户端,现有***需要按照客户要求接入的消息***改造。
MQ相关国际组织也制定了很多标准协议来规范MQ之间的交互,但是该场景下MQ协议只是为了做数据交互,并不能处理一些MQ的共性问题如:如何保证幂等性。
发明内容
本申请提供了一种通用MQ交互方法、***、装置及存储介质,以适配不同类型的MQ。
第一方面,本申请提供了一种通用MQ交互方法,所述方法包括:
配置MQ的类型,以及MQ服务器地址;
与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;
若存在连接,则注册发送者和订阅消费者;
执行发送任务和消费任务。
第二方面,本申请还提供了一种通用MQ交互的***,所述***包括:
配置单元,用于配置MQ的类型,以及MQ服务器地址;
连接单元,用于与MQ服务器建立连接,并判断是否存在连接;
注解单元,用于注册发送者和订阅消费者;
执行单元,用于执行发送任务和消费任务。
第三方面,本申请还提供了一种通用MQ交互装置,所述通用MQ交互装置包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的通用MQ交互方法。
第四方面,本申请还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的通用MQ交互方法。
本申请公开了一种通用MQ交互方法、***、装置及存储介质,通过配置MQ的类型,以及MQ服务器地址;与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;若存在连接,则注册发送者和订阅消费者;执行发送任务和消费任务。本申请用于适配多个类型的MQ。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种通用MQ交互方法的示意流程图;
图2是本申请的实施例提供的一种通用MQ交互方法的执行发送任务的示意流程图;
图3是本申请的一实施例提供的一种通用MQ交互方法的执行消费任务的示意流程图;
图4为本申请的另一实施例提供的一种通用MQ交互方法的执行消费任务的示意流程图;
图5为本申请实施例提供的一种通用MQ交互***的示意性框图;
图6为本申请一实施例提供的一种通用MQ交互装置的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请的实施例提供了一种通用MQ交互方法、***、装置及存储介质。其中,该通用MQ交互方法可以应用于终端或服务器中,以方便多种MQ类型的快速切换。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种通用MQ交互方法的示意流程图。该方法包括步骤S101至步骤S104。
S101、配置MQ的类型,以及MQ服务器地址。
具体地,市场上存在多种类型的MQ,比如RocketMQ、Kafka、RabbitMQ等等,因此,先要配置市场上的某个公司使用的相应类型的MQ,并且配置该公司MQ服务器地址。
S102、与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步。
具体地,在配置完MQ服务器地址后,就与MQ服务器地址建立连接,此时需要判断是否存在连接,若是没有建立连接,则表示连接建立出现错误,此时需要再次返回S101,重新配置MQ类型和MQ服务器的地址。若是存在连接,则进行下一步。
S103、若存在连接,则注册发送者和订阅消费者。
具体地,若是存在连接,则表示连接建立成功,此时注册发送者和订阅消费者。发送者为消息的发送方,订阅消费者为消息的接收方。
S104、执行发送任务和消费任务。
具体地,程序发起一个任务,该任务会根据代码配置的策略去先执行一些保证消息一定发送成功的策略,比如是mysql策略,那么任务会在发送MQ之前先在mysql中保存一份数据,并且记录该消息并没有发送成功。如果发送失败了,可能是MQ宕机了,那么该消息在mysql中记录是未发送成功发送的。如果成功发送了,那么就在mysql中标记该消息发送成功了。
针对失败的任务会有个定时器及时来检查该消息发送失败了,发送失败的会再次进行发送。并且将上个月(可以根据自己需求配置)的发送成功的记录删除。
消费者是被消费注解的类。消费者在执行前先去查看用户配置的策略,比如幂等策略,把重复消费的MQ给过滤掉。然后执行,如果执行过程中出现任何异常,错误即会按照用户配置的策略记录下来或者发送邮件告警。
上述实施例提供的通用MQ交互方法,通过配置MQ的类型以及MQ服务器地址;与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;若存在连接,则注册发送者和订阅消费者;执行发送任务和消费任务。以适配多个类型的MQ。
市场上的MQ中间件数量庞多,开发工程师需要熟悉多种MQ、一遍遍去查阅资料封装自己的客户端,采用本申请的方法后开发工程师只抽象自己的发送者和消费者即可,并且告知客户端自己使用的MQ是哪种类型的MQ,方便使用,提高了开发效率。
市场上切换MQ的代价大,在对外销售产品的时候,产品原先依赖的消息储存***A,客户原先有消息储存***B。并且产品没有使用消息储存***A高级特色,只是使用一些通用的功能,这个时候如果没有一个通用的客户端,往往产品要集成多种MQ到产品中。根据本方法制作一个通用的客户端,可以切换消息储存非常方便,只需要开发工程师整理出自己的TOPIC、TAG即可。
如图2所示,在一个可选的实施例中,执行发送任务包括步骤S1041-S1044。
S1041、配置MQ发送的策略以及发送失败的策略。
具体地,发送策略包括发送前记录日志到ES,发送前记录发送消息到MySQL,等等。发送失败策略包括:策略1储存到数据库,定时任务扫描,重新发起任务;策略2储存到ES,定时任务扫描,重新发起任务;策略3发送告警邮件。
S1042、按照发送策略发送消息。
S1043、用户强制生成唯一的ID,MQ平台发送消息。
具体地,用户强制生成一个唯一的ID,以用于解决幂等性问题,实际MQ客户端发送消息。
S1044、判断是否发送成功,若是发送成功,则将消息传输到服务器,若是发送失败,则按照失败策略来执行。
具体地,若是消息发送成功,则消息到达服务器,发送任务完成。若是发送失败,则按照失败策略来重新发起消息发送任务,或者是发送告警邮件。
市场上的MQ***存在一些共性问题,比如:发送的时候任何保证消息一定能发送成功,消费的时候怎么保证一定消费一次。这些问题的解决方案业界的做法都是留给业务***去实施,如果将本申请的方法制作为通用的MQ客户端,那么可以把问题,在客户端去做处理,并且通过插件配置方式,让开发工程师选择适合自己的解决方案。
如图3所示,本实施例中,执行消费任务包括步骤S1041a-S4044a。
S1041a、配置幂等策略;
S1042a、接收消费消息;
S1043a、按照幂等策略检查ID是否重复,若是重复,则结束,若是不重复则进行下一步;
S1044a、消费执行。
如图4所示,在一个可选的实施例中,步骤S1041a,还包括配置执行失败策略,在S1044a后还包括步骤S1045a和S1046a。
S1045a、判断执行是否失败,若是成功则结束,若是失败则进行下一步;
S1046a、按照失败策略执行。
通过步骤S1045a和S1046a确保出现消费不成功的问题,当消费成功,则消费结束,若是消费不成功则是按照失败策略执行。失败策略包括策略1发回重试,即重新发送消息;策略2发送邮件。
本申请与现有技术相比,至少具有以下优点:
1、降低MQ的门槛,更加便于开发工程师理解,提高开发的效率。
2、多种MQ类型快速切换。
3、提供多种发送策略,保证发送成功率。
4、提供多种幂等性解决策略,开发工程师只是简单配置,即可解决幂等性问题。
5、与开源框架Spring高度聚合,JavaWeb工程师使用更加方便。
请参阅图5,图5是本申请一实施例提供的通用MQ交互***的示意性框图,该通用MQ交互***可以配置于服务器中,用于执行前述的通用MQ交互方法。
如图5所示,该通用MQ交互***200,包括:配置单元201、连接单元202、注解单元203和执行单元204。
配置单元201,用于配置MQ的类型,以及MQ服务器地址。
连接单元202,用于与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步。
注解单元203,用于若存在连接,则注册发送者和订阅消费者。
执行单元204,用于执行发送任务和消费任务。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的通用MQ交互装置上运行。
请参阅图6,图6是本申请实施例提供的一种通用MQ交互装置的结构示意性框图。该装置可以是服务器或终端。
参阅图6,该装置包括通过***总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作***和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种通用MQ交互方法。
处理器用于提供计算和控制能力,支撑整个装置的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种通用MQ交互方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置的限定,具体的装置可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
配置MQ的类型,以及MQ服务器地址;与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;若存在连接,则注册发送者和订阅消费者;执行发送任务和消费任务。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项通用MQ交互方法。
其中,所述计算机可读存储介质可以是前述实施例所述的通用MQ交互装置的内部存储单元,例如所述通用MQ交互装置的硬盘或内存。所述计算机可读存储介质也可以是所述通用MQ交互装置的外部存储设备,例如所述通用MQ交互装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种通用MQ交互方法,其特征在于,包括:
配置MQ的类型,以及MQ服务器地址;
与MQ服务器建立连接,并判断是否存在连接,若没有建立连接,则返回上一步;
若存在连接,则注册发送者和订阅消费者;
执行发送任务和消费任务。
2.根据权利要求1所述的通用MQ交互方法,其特征在于,所述执行发送任务包括:
配置MQ发送的策略以及发送失败的策略;
按照发送策略发送消息;
用户强制生成唯一的ID,MQ平台发送消息;
判断是否发送成功,若是发送成功,则将消息传输到服务器,若是发送失败,则按照失败策略来执行。
3.根据权利要求2所述的通用MQ交互方法,其特征在于,执行消费任务包括:
配置幂等策略;
接收消费消息;
按照幂等策略检查ID是否重复,若是重复,则结束,若是不重复则进行下一步;
消费执行。
4.根据权利要求3所述的通用MQ交互方法,其特征在于,还包括配置执行失败策略,所述消息执行之后,还包括:
判断执行是否失败,若是成功则结束,若是失败则进行下一步;
按照失败策略执行。
5.一种通用MQ交互***,其特征在于,包括:
配置单元,用于配置MQ的类型,以及MQ服务器地址;
连接单元,用于与MQ服务器建立连接,并判断是否存在连接;
注解单元,用于注册发送者和订阅消费者;
执行单元,用于执行发送任务和消费任务。
6.一种通用MQ交互装置,其特征在于,所述装置包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至4中任一项所述的通用MQ交互方法。
7.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至4中任一项所述的通用MQ交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111156541.XA CN113923248A (zh) | 2021-09-30 | 2021-09-30 | 一种通用mq交互方法、***、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111156541.XA CN113923248A (zh) | 2021-09-30 | 2021-09-30 | 一种通用mq交互方法、***、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113923248A true CN113923248A (zh) | 2022-01-11 |
Family
ID=79237281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111156541.XA Pending CN113923248A (zh) | 2021-09-30 | 2021-09-30 | 一种通用mq交互方法、***、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923248A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937433B1 (en) * | 2003-09-23 | 2011-05-03 | Embarq Holdings Company, Llc | Queuing connector to promote message servicing |
CN108762945A (zh) * | 2018-05-14 | 2018-11-06 | 浪潮通用软件有限公司 | 一种支持多种消息队列的实现方法 |
US20190222640A1 (en) * | 2018-01-17 | 2019-07-18 | International Business Machines Corporation | Migration of durable clients in a clustered publish/subscribe system |
CN110825538A (zh) * | 2019-11-04 | 2020-02-21 | 国云科技股份有限公司 | 一种基于mq可自定义数据类型动态进行数据交互的方法 |
US10579449B1 (en) * | 2018-11-02 | 2020-03-03 | Dell Products, L.P. | Message queue architectures framework converter |
CN112559208A (zh) * | 2020-12-15 | 2021-03-26 | 浪潮云信息技术股份公司 | 一种应用于政务云平台构建微服务mq的方法 |
US20210126837A1 (en) * | 2019-10-29 | 2021-04-29 | Dell Products L.P. | Message oriented middleware topology explorer |
CN113325810A (zh) * | 2021-04-22 | 2021-08-31 | 福州汉思信息技术有限公司 | 一种自动化数据交互方法 |
-
2021
- 2021-09-30 CN CN202111156541.XA patent/CN113923248A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937433B1 (en) * | 2003-09-23 | 2011-05-03 | Embarq Holdings Company, Llc | Queuing connector to promote message servicing |
US20190222640A1 (en) * | 2018-01-17 | 2019-07-18 | International Business Machines Corporation | Migration of durable clients in a clustered publish/subscribe system |
CN108762945A (zh) * | 2018-05-14 | 2018-11-06 | 浪潮通用软件有限公司 | 一种支持多种消息队列的实现方法 |
US10579449B1 (en) * | 2018-11-02 | 2020-03-03 | Dell Products, L.P. | Message queue architectures framework converter |
US20210126837A1 (en) * | 2019-10-29 | 2021-04-29 | Dell Products L.P. | Message oriented middleware topology explorer |
CN110825538A (zh) * | 2019-11-04 | 2020-02-21 | 国云科技股份有限公司 | 一种基于mq可自定义数据类型动态进行数据交互的方法 |
CN112559208A (zh) * | 2020-12-15 | 2021-03-26 | 浪潮云信息技术股份公司 | 一种应用于政务云平台构建微服务mq的方法 |
CN113325810A (zh) * | 2021-04-22 | 2021-08-31 | 福州汉思信息技术有限公司 | 一种自动化数据交互方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11526342B2 (en) | Cancel and rollback update stack requests | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN110620890A (zh) | 文件上传方法及*** | |
CN111835467B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN108765083B (zh) | 路由化订单配置及处理方法、以及*** | |
CN108833443B (zh) | 一种消息传输方法及***、计算机设备 | |
CN111240812A (zh) | 任务执行方法及装置 | |
CN111694677A (zh) | 消息队列的管理方法、装置、终端和计算机可读存储介质 | |
CN107015855B (zh) | 一种支持时间策略的异步服务集中调度方法及装置 | |
CN110941622A (zh) | 一种数据处理方法及装置 | |
CN112437155B (zh) | 服务数据的处理方法、装置以及服务端设备 | |
CN110674153B (zh) | 一种数据一致性检测方法、装置及电子设备 | |
CN113157405A (zh) | 业务流程断点重试的方法和装置 | |
CN113923248A (zh) | 一种通用mq交互方法、***、装置及存储介质 | |
WO2023116701A1 (zh) | 基于物联网平台的数据信息推送方法、装置、设备及介质 | |
WO2021051590A1 (zh) | 应用环境的文件配置方法、装置、计算机设备和存储介质 | |
CN111274047A (zh) | 信息处理方法、终端、***、计算机设备和存储介质 | |
CN113535439B (zh) | 业务请求处理方法、装置、设备及存储介质 | |
CN113590355A (zh) | 工作流回调消息的实现方法及消息网关*** | |
CN114138528A (zh) | 远程调用容错处理方法、终端设备及存储介质 | |
CN112333262A (zh) | 数据更新提示方法、装置、计算机设备及可读存储介质 | |
CN112882655A (zh) | 数据缓存方法、装置、电子设备及存储介质 | |
CN113779021A (zh) | 数据处理方法、装置、计算机***及可读存储介质 | |
CN110647526B (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 |