CN107317742B - 消息处理方法及***、计算机***、计算机可读存储介质 - Google Patents
消息处理方法及***、计算机***、计算机可读存储介质 Download PDFInfo
- Publication number
- CN107317742B CN107317742B CN201610533589.0A CN201610533589A CN107317742B CN 107317742 B CN107317742 B CN 107317742B CN 201610533589 A CN201610533589 A CN 201610533589A CN 107317742 B CN107317742 B CN 107317742B
- Authority
- CN
- China
- Prior art keywords
- message
- general
- processing
- type
- processor
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/066—Format adaptation, e.g. format conversion or compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种消息处理方法及***,方法首先将发送端待发送的消息进行转换,得到通用消息,然后将通用消息发送至接收端,最后根据通用消息中的消息类型,选用消息处理链上的消息处理器对消息内容进行处理。本发明将不同类型的消息均转换为通用消息,无需为每个消息都设计一个完整处理过程,这样避免了功能重复,从而减少了代码冗余;另外,在有新的消息类型出现时,可以在消息处理链上添加消息处理器来处理此类型的通用消息,从而具有很好的扩展性。
Description
技术领域
本发明属于计算机领域,尤其涉及一种消息处理方法及***、计算机***、计算机可读存储介质。
背景技术
消息队列(Message Queue,MQ)是一种应用程序对应用程序的通信方法。由于消息队列是通过消息通信,提供了用于应用集成的松耦合的连接方法,所以在***架构中使用比较频繁。
在***实际运行过程中,往往存在着多个人开发多个消息的情况,各个消息处理存在许多通用的地方,另一个方面,消息处理缺乏统一的规划,后期的维护比较困难。
如图1所示,在现有技术的消息处理方法中,需要为每个消息(消息A和消息B)都设计一个完整处理过程,如消息获取、数据验证、记录日志等步骤,这样导致重复功能多、代码冗余,同时,消息处理流程不受控制,差异大,维护性差,另外,新增消息需要实现多个功能,扩展性不好。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种消息处理方法及***,能对不同类型的消息进行统一处理,并且具有很好的扩展性。
(二)技术方案
本发明提供一种消息处理方法,用于对一发送端向一接收端发送的消息进行处理,方法包括:
S1,将发送端待发送的消息进行转换,得到一通用消息,其中,通用消息包括待发送消息的消息内容和消息类型;
S2,将通用消息发送至接收端;
S3,根据通用消息中的消息类型,对通用消息中的消息内容进行处理。
本发明还提供一种消息处理***,用于对一发送端向一接收端发送的消息进行处理,***包括:
消息转换单元,用于将发送端待发送的消息进行转换,得到一通用消息,其中,通用消息包括待发送消息的消息内容及消息类型;
消息发送单元,用于将通用消息发送至接收端;
消息处理单元,用于根据通用消息中的消息类型,对通用消息中的消息内容进行处理。
本发明还提供了一种计算机***,包括:存储器;以及耦接至所述存储器的处理器,其中,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的消息处理方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上所述的消息处理方法。
(三)有益效果
本发明将不同类型的消息均转换为通用消息,无需为每个消息都设计一个完整处理过程,这样避免了功能重复,从而减少了代码冗余;另外,在有新的消息类型出现时,可以在消息处理链上添加消息处理器来处理此类型的通用消息,从而具有很好的扩展性。
附图说明
图1是现有技术的消息处理方法的流程图。
图2是本发明提供的消息处理方法的流程图。
图3是本发明实施例通过的消息处理的流程示意图。
图4是本发明实施例中消息转换的示意图。
图5是本发明实施例中序列化数据转换为通用消息的示意图。
图6是本明实施例中处理通用消息的流程图。
具体实施方式
本发明提供一种消息处理方法及***,方法首先将发送端待发送的消息进行转换,得到通用消息,然后将通用消息发送至接收端,最后根据通用消息中的消息类型,选用消息处理链上的消息处理器对消息内容进行处理。本发明将不同类型的消息均转换为通用消息,无需为每个消息都设计一个完整处理过程,这样避免了功能重复,从而减少了代码冗余;另外,在有新的消息类型出现时,可以在消息处理链上添加消息处理器来处理此类型的通用消息,从而具有很好的扩展性。
图2是本发明提供的消息处理方法的流程图,如图2所示,消息处理方法包括:
S1,将发送端待发送的消息进行转换,得到一通用消息,其中,通用消息包括待发送消息的消息内容和消息类型;其中,发送端和接收端是通过消息的方式进行通信,这里的发送端和接收端可以是客户端和服务器。在消息进行转换时,可以创建一个通用消息对象,该对象中具有多个成员,即消息内容和消息类型。
S2,将通用消息发送至接收端;
S3,根据通用消息中的消息类型,对通用消息中的消息内容进行处理。
根据本发明的一种实施方式,为了便于消息的存储,步骤S1还包括:将所述通用消息进行序列化处理,得到所述通用消息的序列化数据,其中,序列化数据可以是JSON数据、XML数据及二进制数据等,并将该序列化数据储存于一消息队列中,本发明将通用消息以序列化数据的形式存储于消息队列,是因为消息需要在异构***之间传递并相互理解,消息队列能够提供消息缓存能力,并且,在步骤S2中消息发送时,先将消息队列中的序列化数据发送至接收端,并在接收端中对序列化数据进行反序列化处理,得到对应的通用消息。
根据本发明的一种实施方式,在步骤S3对消息进行处理之前,还包括:对通用消息进行数据验证和日志记录,数据验证和日志记录是为了保证消息的完整性和有效性,并能够分析消息处理各种特征。
根据本发明的一种实施方式,步骤S3包括:根据通用消息中的消息类型,选用与消息类型对应的消息处理器,以对通用消息中的消息内容进行处理,其中,消息处理器是指框架中一种抽象的逻辑单元,用于解析消息和处理消息,特定类型的消息处理器指定处理特定类型的消息,消息处理器可以通过继承抽象处理器的JAVA子类实现。
根据本发明的一种实施方式,多个对应于不同消息类型的消息处理器线性存储于一消息处理链上,通过遍历消息处理链上的消息处理器,获取与消息类型对应的消息处理器,所述消息处理链可以通过责任链设计模式实现。
根据本发明的一种实施方式,通用消息包括还包括冗余信息,其中,冗余信息可以是发送端IP、发送端名称、发送时间等,步骤S3中,若不存在消息类型对应的消息处理器,则根据通用消息的冗余信息对通用消息进行备份,备份是为了能够对未处理消息进行还原,从而重新处理。
根据本发明的一种实施方式,在对通用消息进行备份后,在消息处理链上添加通用消息中消息类型所对应的消息处理器,这样只需通过添加消息处理器就可实现新类型消息的处理,从而具有很好的扩展性。
本发明还提供一种消息处理***,包括:
消息转换单元,用于将发送端待发送的消息进行转换,得到一通用消息,其中,通用消息包括待发送消息的消息内容及消息类型;
消息发送单元,用于将通用消息发送至接收端;
消息处理单元,用于根据所述通用消息中的消息类型,对通用消息中的消息内容进行处理。
根据本发明的一种实施方式,消息转换单元将通用消息进行序列化处理,得到通用消息的序列化数据,并将该序列化数据储存于一消息队列中。
根据本发明的一种实施方式,消息发送单元将消息队列中的序列化数据发送至所述接收端,并对序列化数据进行反序列化处理,得到对应的通用消息。
根据本发明的一种实施方式,消息处理***还包括:数据验证单元,用于对通用消息进行数据验证;日志记录单元,用于对通用消息进行日志记录。
根据本发明的一种实施方式,消息处理单元根据通用消息中的消息类型,选用与消息类型对应的消息处理器,以对通用消息中的消息内容进行处理。
根据本发明的一种实施方式,多个对应于不同消息类型的消息处理器线性存储于一消息处理链上,通过遍历所述消息处理链上的消息处理器,获取与所述消息类型对应的消息处理器。
根据本发明的一种实施方式,通用消息包括还包括冗余信息,消息处理单元在不存在消息类型对应的消息处理器时,根据通用消息的冗余信息对通用消息进行备份。
根据本发明的一种实施方式,消息处理单元在对通用消息进行备份后,在消息处理链上添加通用消息中消息类型所对应的消息处理器。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图3是本发明实施例通过的消息处理的流程示意图,如图3所示,客户端(发送端)向服务器(接收端)发送多种不同类型的消息(消息A和消息B)时,无需为每个消息都设计一个完整处理过程,只需将消息A和消息B都转换为统一的通用消息,并发送至服务器,服务器对该通用消息进行验证和日志记录后,选择不同的消息处理器对通用消息进行处理。
图4是本发明实施例中消息转换的示意图,如图4所示,客户端(发送端)向服务器(接收端)发送消息时,先将待发送的消息封装成通用消息,其中,通用消息包括待发送消息的消息类型、消息内容及冗余信息,冗余信息包括客户端IP、客户端名称、发送时间等,然后将通用消息进行序列化,得到JSON/XML/二进制形式的序列化数据,并将序列化数据存储在消息队列中。
图5是本发明实施例中序列化数据转换为通用消息的示意图,如图5所示,向服务器发送通用消息时,首先消息队列向服务器发送其存储的序列化数据,服务器对该序列化数据进行反序列化,得到对应的通用消息。服务器在获取到通用消息后,对该通用消息进行相应处理,如数据验证和记录日志,然后进行消息处理。
图6是本明实施例中处理通用消息的流程图,如图6所示,消息处理链上挂载有多个消息处理器,通用消息根据自身的消息类型在消息处理链上依次遍历每个消息处理器,直到找到对应的消息处理器为止,图6中示出了消息处理器A和消息处理器B,其分别对应处理图3中所示的消息A和消息B。另外,如果有新增的消息C需要处理,只需在消息处理链上增加一个消息处理器C即可,可以看出,新增的消息处理器C,完全不影响以前的消息处理器A和消息处理器B。又如图6所示,如果某一消息在消息处理链上不存在对应的消息处理器,则备份这个消息。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种消息处理方法,用于对一发送端向一接收端发送的消息进行处理,其特征在于,方法包括:
S1,将所述发送端待发送的消息进行转换,得到一通用消息,其中,所述通用消息包括所述待发送消息的消息内容和消息类型;
S2,将所述通用消息发送至所述接收端;
S3,根据所述通用消息中的消息类型,对所述通用消息中的消息内容进行处理;所述步骤S3包括:根据所述通用消息中的消息类型,选用与所述消息类型对应的消息处理器,以对所述通用消息中的消息内容进行处理;若不存在所述消息类型对应的消息处理器,添加所述通用消息中消息类型所对应的消息处理器。
2.根据权利要求1所述的消息处理方法,其特征在于,所述步骤S1还包括:将所述通用消息进行序列化处理,得到所述通用消息的序列化数据,并将该序列化数据储存于一消息队列中。
3.根据权利要求2所述的消息处理方法,其特征在于,所述步骤S2包括:将所述消息队列中的序列化数据发送至所述接收端,并对所述序列化数据进行反序列化处理,得到对应的通用消息。
4.根据权利要求1所述的消息处理方法,其特征在于,所述步骤S3之前还包括:对所述通用消息进行数据验证和日志记录。
5.根据权利要求1所述的消息处理方法,其特征在于,多个对应于不同消息类型的消息处理器线性存储于一消息处理链上,通过遍历所述消息处理链上的消息处理器,获取与所述消息类型对应的消息处理器。
6.根据权利要求5所述的消息处理方法,其特征在于,所述通用消息包括还包括冗余信息,所述步骤S3中,若不存在所述消息类型对应的消息处理器,则根据所述通用消息的冗余信息对所述通用消息进行备份。
7.根据权利要求6所述的消息处理方法,其特征在于,在对所述通用消息进行备份后,在所述消息处理链上添加所述通用消息中消息类型所对应的消息处理器。
8.一种消息处理***,用于对一发送端向一接收端发送的消息进行处理,其特征在于,***包括:
消息转换单元,用于将所述发送端待发送的消息进行转换,得到一通用消息,其中,所述通用消息包括所述待发送消息的消息内容及消息类型;
消息发送单元,用于将所述通用消息发送至所述接收端;
消息处理单元,用于根据所述通用消息中的消息类型,对所述通用消息中的消息内容进行处理;所述消息处理单元根据所述通用消息中的消息类型,选用与所述消息类型对应的消息处理器,以对所述通用消息中的消息内容进行处理;所述消息处理单元在不存在所述消息类型对应的消息处理器时,添加所述通用消息中消息类型所对应的消息处理器。
9.根据权利要求8所述的消息处理***,其特征在于,所述消息转换单元将所述通用消息进行序列化处理,得到所述通用消息的序列化数据,并将该序列化数据储存于一消息队列中。
10.根据权利要求9所述的消息处理***,其特征在于,所述消息发送单元将所述消息队列中的序列化数据发送至所述接收端,并对所述序列化数据进行反序列化处理,得到对应的通用消息。
11.根据权利要求8所述的消息处理***,其特征在于,还包括:
数据验证单元,用于对所述通用消息进行数据验证;
日志记录单元,用于对所述通用消息进行日志记录。
12.根据权利要求8所述的消息处理***,其特征在于,多个对应于不同消息类型的消息处理器线性存储于一消息处理链上,通过遍历所述消息处理链上的消息处理器,获取与所述消息类型对应的消息处理器。
13.根据权利要求12所述的消息处理***,其特征在于,所述通用消息包括还包括冗余信息,所述消息处理单元在不存在所述消息类型对应的消息处理器时,根据所述通用消息的冗余信息对所述通用消息进行备份。
14.根据权利要求13所述的消息处理***,其特征在于,所述消息处理单元在对所述通用消息进行备份后,在所述消息处理链上添加所述通用消息中消息类型所对应的消息处理器。
15.一种计算机***,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,其中,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的消息处理方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至7中任一项所述的消息处理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2016102696064 | 2016-04-27 | ||
CN201610269606 | 2016-04-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107317742A CN107317742A (zh) | 2017-11-03 |
CN107317742B true CN107317742B (zh) | 2020-08-14 |
Family
ID=60184466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610533589.0A Active CN107317742B (zh) | 2016-04-27 | 2016-07-07 | 消息处理方法及***、计算机***、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107317742B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147285A (zh) * | 2018-02-13 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 基于消息队列的消息处理方法和装置 |
CN110674004A (zh) * | 2019-08-28 | 2020-01-10 | 北京奇艺世纪科技有限公司 | 一种队列消息记录方法、***、电子设备及存储介质 |
CN112395114B (zh) * | 2020-12-07 | 2021-05-07 | 震坤行网络技术(南京)有限公司 | 用于处理消息的方法、计算设备和计算机可读存储介质 |
CN113434311B (zh) * | 2021-06-28 | 2023-01-31 | 平安科技(深圳)有限公司 | 业务数据交互方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077246A (zh) * | 2013-01-18 | 2013-05-01 | 国网电力科学研究院 | 一种基于Netty的大屏可视化平台数据推送*** |
CN103905521A (zh) * | 2012-12-31 | 2014-07-02 | ***通信集团公司 | 一种用于网络服务的信息处理***和方法 |
CN104462121A (zh) * | 2013-09-18 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364745B2 (en) * | 2009-11-24 | 2013-01-29 | International Business Machines Corporation | Service oriented architecture enterprise service bus with universal ports |
-
2016
- 2016-07-07 CN CN201610533589.0A patent/CN107317742B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905521A (zh) * | 2012-12-31 | 2014-07-02 | ***通信集团公司 | 一种用于网络服务的信息处理***和方法 |
CN103077246A (zh) * | 2013-01-18 | 2013-05-01 | 国网电力科学研究院 | 一种基于Netty的大屏可视化平台数据推送*** |
CN104462121A (zh) * | 2013-09-18 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107317742A (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107317742B (zh) | 消息处理方法及***、计算机***、计算机可读存储介质 | |
CN110943911B (zh) | 基于protobuf的物联网高效数据传输方法 | |
US9141681B2 (en) | Creating a column family in a database | |
CN111124653A (zh) | 延迟消息处理方法、***、设备和存储介质 | |
CN113900810A (zh) | 分布式图处理方法、***及存储介质 | |
CN111371898B (zh) | 一种消息监听方法、装置、设备及存储介质 | |
CN103297453A (zh) | 实现即时通讯的方法、浏览器端和*** | |
CN111897662A (zh) | 偏移量处理方法、装置、电子设备及计算机可读存储介质 | |
US10938633B2 (en) | Facilitating resilient and fault tolerant asynchronous messaging | |
US8387070B2 (en) | Object request broker | |
WO2020211622A1 (zh) | 一种基于区块链的消息存储方法及装置 | |
CN113014618B (zh) | 消息处理方法、***和电子设备 | |
CN113297163B (zh) | 基于区块链的询证函中转***、方法、装置、设备和介质 | |
US8752071B2 (en) | Identifying subscriber data while processing publisher event in transaction | |
CN103997509A (zh) | 一种基于面向服务的体系结构的服务处理方法及装置 | |
CN107688978B (zh) | 用于检测重复订单信息的方法及装置 | |
CN111190607B (zh) | 任务插件处理方法和装置、任务调度服务器及存储介质 | |
US20160162559A1 (en) | System and method for providing instant query | |
US20120124234A1 (en) | Reliable message transfer | |
US11650963B2 (en) | Storing serialized structured data generically in a standardized serialized data structure | |
CN111917572B (zh) | 交易请求的处理方法、装置、电子设备及可读存储介质 | |
KR101739825B1 (ko) | 데이터 처리 시스템 및 이에 적용되는 컴퓨터로 읽을 수 있는 기록매체 | |
CN114064391A (zh) | 一种分布式报警或事件信息处理方法及装置 | |
KR101739829B1 (ko) | 데이터 처리방법 및 이에 적용되는 컴퓨터로 읽을 수 있는 기록매체 | |
Albassam et al. | Variable recovery and adaptation connectors for dynamic software product lines |
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 |