CN113973139A - 一种消息处理的方法和装置 - Google Patents
一种消息处理的方法和装置 Download PDFInfo
- Publication number
- CN113973139A CN113973139A CN202111220761.4A CN202111220761A CN113973139A CN 113973139 A CN113973139 A CN 113973139A CN 202111220761 A CN202111220761 A CN 202111220761A CN 113973139 A CN113973139 A CN 113973139A
- Authority
- CN
- China
- Prior art keywords
- request
- field
- configuration information
- information
- data object
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 19
- 238000013461 design Methods 0.000 abstract description 6
- 239000007787 solid Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种消息处理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:从调用方发送的调用请求中解析出请求数据和请求路径信息;从配置中心获取与调用方和请求路径信息对应的网关配置信息,根据网关配置信息将请求数据转化为数据对象;将数据对象发送至与调用方对应的客户端。该实施方式能够在业务拓展时,避免业务的重复开发,减少代码开发的工作量,可复用性高,符合代码设计的SOLID原则,提高了系统的健壮性,可灵活配置,提高了开发效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种消息处理的方法和装置。
背景技术
网关系统与外部业务系统如外部ERP系统对接实现消息处理,当无法直接与外部业务系统对接消息系统时,外部业务系统通过异步调用网关系统HTTP接口,网关系统将HTTP请求转化为消息并发送。
现有技术中,外部业务系统调用网关系统,每个业务方或业务场景对应有一个Controller(网关控制器),使得网关系统处理HTTP请求。每增加一个业务方或业务场景时,需要新编码一个Controller来接收业务方的HTTP请求,并将HTTP请求的内容转化为对应的消息体并发送。但业务方的增加,导致开发的工作量增加,同时也不利于网关系统的维护。
发明内容
有鉴于此,本发明实施例提供一种消息处理的方法和装置,能够采用统一的网关服务器处理外部系统的调用请求,根据从配置中心获取的网关配置信息对调用请求中的请求数据转化为数据对象,并发送到与调用方对应的客户端,增加新业务时更改网关配置信息即可,避免了业务上的重复开发,提高了系统的健壮性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种消息处理的方法,包括:
从调用方发送的调用请求中解析出请求数据和请求路径信息;
从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息,根据所述网关配置信息将所述请求数据转化为数据对象;
将所述数据对象发送至与所述调用方对应的客户端。
可选地,所述网关配置信息包括鉴权配置信息;根据所述网关配置信息将所述请求数据转化为数据对象之前,还包括:
根据所述鉴权配置信息对所述调用请求进行校验,并确认校验成功。
可选地,所述网关配置信息包括消息体信息;根据所述网关配置信息将所述请求数据转化为数据对象,包括:
从所述消息体信息中获取字段名、字段类型和字段属性的父节点;
根据所述字段名、所述字段类型和所述字段属性的父节点,对所述请求数据进行反序列化,获得所述数据对象。
可选地,对所述请求数据进行反序列化之前,包括:
判断所述请求数据中的字段是否为未配置的字段;
若是,过滤所述字段;
若否,判断所述字段的字段类型是否与已配置的字段类型匹配;
若是,保留所述字段,若否,过滤所述字段。
可选地,对所述请求数据进行反序列化之后,还包括:
对所述数据对象进行字段校验,确定校验结果为校验成功;
当所述校验结果为校验失败时,结束流程;
其中,所述字段校验包括非空校验和范围校验中的至少一种,所述非空校验为校验所述字段的值是否为空值,所述范围校验为校验所述字段的值的范围是否在预设范围内。
可选地,所述网关配置信息包括协议信息和主题信息,将所述数据对象发送至与所述调用请求对应的客户端,包括:
根据所述协议信息和主题信息确定与所述调用请求对应的客户端,将所述数据对象发送至所述客户端。
可选地,所述方法还包括:
在从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息之前,确定本地缓存中不存在所述网关配置信息,在从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息之后,将所述网关配置信息保存在所述本地缓存中;
当所述本地缓存中存在所述网关配置信息时,从所述本地缓存中获取所述网关配置信息。
根据本发明实施例的再一个方面,提供了一种消息处理的装置,包括:
解析模块,从调用方发送的调用请求中解析出请求数据和请求路径信息;
转化模块,从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息,根据所述网关配置信息将所述请求数据转化为数据对象;
发送模块,将所述数据对象发送至与所述调用方对应的客户端。
根据本发明实施例的另一个方面,提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的消息处理的方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的消息处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例的消息处理方法通过统一接收不同调用方的不同调用请求,从调用请求中解析出请求数据和请求路径信息,然后从配置中心获取与调用方和请求路径信息对应的网关配置信息,然后根据网关配置中心将请求数据转化为数据对象,并将数据对象发送至调用方对应的客户端该消息处理方法在业务拓展时,能够避免业务上的重复开发,减少了代码开发的工作量,可复用性高,符合代码设计的SOLID原则,提高了系统的健壮性,可灵活配置,提高了开发效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种消息处理的方法的主要流程的示意图;
图2是根据本发明实施例的另一种消息处理的方法的主要流程的示意图;
图3是根据本发明实施例的消息处理的装置的主要模块的示意图;
图4是现有技术的一种消息处理的方法的流程的示意图;
图5是本发明实施例的一种消息处理的方法的流程的示意图;
图6是本发明实施例的集成网关系统与配置中心的交互关系示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在业务对外拓展的过程中,如新零售电商、金融机构对接第三方支付机构等业务的业务拓展,网关系统需要对接外部的业务系统如外部的ERP系统(Enterprise ResourcePlanning,集成化管理信息系统),以接受外部业务系统的消息,并进行相关的处理操作。现有技术中,外部的业务方会调用网关层对应的Controller,并将对应的消息内容写在HTTP的请求Body里面带过来,不同处理的Controller解析不同的业务,并将请求的相关参数转化为相应的消息体并发送。这样,每新加一个业务方或者业务场景,网关模块就需要新编码一个新的Controller来接受新的请求,一旦出现业务方的增加,开发的工作量业务随之增加。并且,代码中的Controller数量增加时,不利于网关系统的维护,违背代码设计的SOLID原则,分散的网关也会造成各种接入的标准不一,不利于后续的统一管理。针对上述问题,本发明实施例提供了一种消息处理的方法,避免了业务上的重复开发,提高网关系统的可复用性,减少了代码开发的工作量。
图1是根据本发明实施例的一种消息处理的方法的主要流程的示意图,如图1所示,该方法包括:
步骤S101:从调用方发送的调用请求中解析出请求数据和请求路径信息;
步骤S102:从配置中心获取与调用方和请求路径信息对应的网关配置信息,根据网关配置信息将请求数据转化为数据对象;
步骤S103:将数据对象发送至与调用方对应的客户端。
在本发明实施例中,调用方为外部业务系统,如外部ERP系统,如在电商领域中,可以为某电商平台的订单系统、商品系统、价格系统等。调用请求可以为HTTP请求,从调用请求中可以解析出请求数据和请求路径信息,还可以解析出调用方信息,调用方信息包括调用方标识,请求路径信息为调用方的URL路径信息。请求数据可以为经过压缩后的数据,例如请求数据为snappy(开源的压缩/解压缩库)压缩后的数据,还可以为zlib、LZO、LZF、FastLZ和QuickLZ等压缩库压缩后的数据。请求数据包括业务数据信息,如商品降价信息、订单信息等。请求路径信息为调用方的URL路径信息。
在本发明实施例中,调用方可以为一个或多个,每个调用方可以对应一个或多个业务或业务场景,每个调用方可以发送一个或多个调用请求,本发明实施例的消息处理的装置可以统一接收多个调用方的多个调用请求,并对调用请求进行校验,校验成功后,将请求数据转化为数据对象发送至与调用方对应的客户端。
接收调用方发送的调用请求,进入一系列的网关调用链,该网关调用链使用责任链设计模式实现,即调用链中某一行为或流程处理失败,则返回失败的结果。网关调用链用于对调用请求进行校验和对请求数据进行处理等。
在本发明实施例中,网关配置信息包括鉴权配置信息,根据网关配置信息将请求数据转化为数据对象之前,还包括:根据鉴权配置信息对调用请求进行校验,并确认校验成功。
在本发明实施例中,在接收到调用方发送的调用请求后,根据配置中心的鉴权配置信息对调用请求进行校验,当校验成功后,可以确定调用方和调用请求具有调用权限。
可选地,从调用请求中可以解析出令牌,如token令牌,鉴权配置信息包括已配置的令牌,根据鉴权配置信息对调用请求进行校验,还包括:将从调用请求中解析出的令牌与已配置的令牌进行匹配,如果从调用请求中解析的令牌与已配置的令牌匹配成功,则校验成功,否则,校验失败,返回无权限的结果。
在本发明实施例中,鉴权配置信息包括已配置的调用方信息和已配置的请求路径信息,根据鉴权配置信息对调用请求进行校验,还包括:对调用请求中的调用方信息和请求路径信息进行校验,判断是否与已配置的调用方信息和请求路径信息匹配,如匹配成功,则校验成功,否则,校验失败,返回无权限的结果。
可选地,调用请求中还包括密钥,鉴权配置信息中还包括已配置的密钥根据鉴权配置信息对调用请求进行校验,包括:将调用请求中的密钥与已配置的密钥进行匹配,如果匹配成功,则校验成功,否则,校验失败,返回无权限的结果。若请求数据为经过密钥加密的压缩数据,当调用请求中的密钥与已配置的密钥匹配成功后,可以采用已配置的密钥对请求数据进行解压处理,获得解压后的请求数据。
在本发明实施例中,网关配置信息包括消息体信息,当根据鉴权配置信息对调用方的调用请求校验成功后,根据网关配置信息将请求数据转化为数据对象,包括:步骤S201:从消息体信息中获取字段名、字段类型和字段属性的父节点;步骤S202:根据字段名、字段类型和字段属性的父节点,对请求数据进行反序列化,获得数据对象。
可选的,当调用请求校验成功后,可以根据请求路径信息和调用方信息,从配置中心获取与调用请求对应消息体信息。从消息体信息中可以获取字段名、字段类型和字段属性的父节点,然后对请求数据反序列化处理,得到数据对象。
在本发明实施例中,请求数据可以为经密钥加密压缩后的数据,密钥与已配置的密钥相同,根据字段名、字段属性和字段属性的父节点对请求数据进行反序列化之前,还包括:采用已配置的密钥对请求数据进行解压处理,获得解压后的请求数据。
在本发明实施例中,根据字段名、字段类型和字段属性的父节点对请求数据进行反序列化,包括:根据字段名、字段类型和字段属性的父节点,将解压后的请求数据进行反序列化,获得为数据对象。
在本发明实施例中,字段名为字段的名称,如订单号字段,商品名称字段,字段类型包括字符串类型、数值类型和日期类型等,字段属性的父节点,即字段的上级节点,与字段存在父子关系的上级节点。如字段为商品价格,字段属性的父节点为商品信息。请求数据为Json字符串文本格式的数据,对请求数据反序列化,根据消息体格式将请求数据转化为数据对象,如Java对象,例如将商品名称放到Java对象的name字段,将商品价格放到Java对象的price字段,对应的字段属性的父节点为商品信息,将请求数据按照消息体信息的格式转化为数据对象,便于后续对数据对象进行字段校验。
在本发明实施例中,对请求数据进行序列化之前,还包括:判断请求数据中的字段是否为未配置的字段;若是,过滤字段;若否,判断字段的字段类型是否与已配置的字段类型匹配;若是,保留字段,若否,过滤字段。
在将调用方的请求数据转化为数据对象之前,对解压后的请求数据中无法识别的字段进行过滤,针对在配置中没有配置的字段,即未配置的字段,过滤该字段,如删除该字段;例如,若请求数据中包括商品类别的字段,若未配置该字段,则过滤该字段。若配置中配置了字段,但字段的类型与已配置的字段类型不匹配,过滤该字段,如删除该字段;例如,已配置了订单号字段,若请求数据中的订单号字段的类型为数值类型,与已配置的字段类型为字符串类型不匹配,则过滤该字段。
在本发明实施例中,对请求数据进行序列化之后,还包括:对数据对象进行字段校验,确定校验结果为校验成功;当校验结果为校验失败时,结束流程;其中,字段校验包括非空校验和范围校验中的至少一种,非空校验为校验字段的值是否为空值,范围校验为校验字段的值的范围是否在预设范围内。
根据消息体信息,将请求数据的转化为数据对象后,对数据对象进行字段校验,包括非空校验和范围校验中的至少一种,非空检验为:当字段中不允许出现空值时,如果校验出数据对象中出现字段的值为空值的情况,则校验失败,网关调用链执行失败,返回调用失败的结果,结束流程;例如,若字段为订单号时,不允许出现空值,若校验出现空值,则校验失败;范围校验为:当设置字段的值在预设范围内时,如果校验出数据对象中出现字段的值不在预设范围内,则校验失败,网关调用链执行失败,返回调用失败的结果,结束流程;例如,若字段为订单状态时,订单状态的值的范围为1-9,若校验出数据对象中出现订单状态的值为10,则校验失败。
在本发明实施例中,网关配置信息包括协议信息和主题信息,将数据对象发送至与调用方对应的客户端,包括:根据协议信息和主题信息确定与调用方对应的客户端,将数据对象发送至客户端。
根据调用方信息和请求路径信息,可以确定与请求数据对应的协议信息和主题信息,即已配置的消息信息。根据主题信息可以确定主题名称,即确定数据对象对应的主题名称。协议信息与客户端对应,协议信息可以包括Kafka、rabbitMq、activeMq和pulsar等多种协议,根据协议信息和消息主题信息,可以确定客户端和主题名称,从而可以将数据对象对应的消息发送至对应的客户端的主题中。通过将调用请求转换为异步的包含数据对象的消息,实现协议转换,使得数据对象对应的消息支持多种协议,可以根据业务需求,增加协议的种类,易于水平拓展。
例如,接收调用方发送的业务1和2分别对应的调用请求1和调用请求2,根据已配置的调用请求的鉴权信息分别对调用请求1和2的鉴权信息进行校验,当校验成功后,将调用请求1和2中的请求数据转化为数据对象1和数据对象2,将包含数据对象1的消息发送到与调用方对应的客户端的主题1中,将包含数据对象2的消息发送到与调用方对应的客户端的主题2中,以使得后端业务系统进行各自的业务逻辑处理。
在本发明实施例中,该方法还包括:在从配置中心获取与调用方和请求路径信息对应的网关配置信息之前,确定本地缓存中不存在网关配置信息;在从配置中心获取与调用方和请求路径信息对应的网关配置信息之后,将网关配置信息保存在本地缓存中;
当本地缓存中存在网关配置信息时,从本地缓存中获取网关配置信息。
在本发明实施例中,为提高网关配置信息的查询获取效率,将从配置中心获取的配置快照即网关配置信息保存在本地缓存中,当本地缓存中存在网关配置信息时,优先从本地缓存中获取网关配置信息,当本地缓存中不存在网关配置信息时,则从配置中心获取,并在从配置中心获取与调用方和请求路径信息对应的网关配置信息之后,将网关配置信息保存在本地缓存中。当配置中心的网关配置信息发生变更后,配置中心向集成网关系统推送更新网关配置信息的通知,以使得集成网关系统获取更新后的网关配置信息并保存在本地缓存中,从而提高了网关配置信息的查询效率。
本发明实施例提供的消息处理的方法,通过统一接收调用方的调用请求,从调用请求中解析出请求数据和请求路径信息,根据从配置中心获取的与调用方和请求路径信息对应的网关配置信息将请求数据转化为数据对象,通过配置中心的网关配置信息,使得数据对象支持Kafka、rabbitMq、activeMq和pulsar等多种协议,将数据对象发送至与协议信息和主题信息对应的客户端,以使得客户端将数据对象序列化后发送至消息中间件,实现调用请求转异步消息的协议转换,且易于水平拓展;通过部署配置中心网关配置信息,实现业务和技术的解耦,可复用性高,可以通过变更的配置中心的网关配置信息实现业务的拓展,避免了业务的重复开发,极大地减少代码开发的工作量,提高了开发效率,可应用于新零售电商业务的对外拓展中。
如图3所示,本发明实施例还提供一种消息处理的装置300,包括:
解析模块301,从调用方发送的调用请求中解析出请求数据和请求路径信息;
转化模块302,从配置中心获取与调用方和请求路径信息对应的网关配置信息,根据网关配置信息将请求数据转化为数据对象;
发送模块303,将数据对象发送至与调用方对应的客户端。
在本发明实施例中,网关配置信息包括鉴权配置信息,该装置还包括鉴权模块,用于:根据网关配置信息将请求数据转化为数据对象之前,根据鉴权配置信息对调用请求进行校验,并确认校验成功。
在本发明实施例中,网关配置信息包括消息体信息;转化模块302,进一步用于:从消息体信息中获取字段名、字段类型和字段属性的父节点;根据字段名、字段类型和字段属性的父节点,对请求数据进行反序列化,获得数据对象。
在本发明实施例中,转化模块302,还用于:对请求数据进行反序列化之前,判断请求数据中的字段是否为未配置的字段;若是,过滤字段;若否,判断字段的字段类型是否与已配置的字段类型匹配;若是,保留字段,若否,过滤字段。
在本发明实施例中,转化模块302,还用于:对请求数据进行反序列化之后,对数据对象进行字段校验,确定校验结果为校验成功;当校验结果为校验失败时,结束流程;
其中,字段校验包括非空校验和范围校验中的至少一种,非空校验为校验字段的值是否为空值,范围校验为校验字段的值的范围是否在预设范围内。
根据本发明实施例,网关配置信息包括协议信息和主题信息,发送模块303,还用于:将数据对象发送至与调用方对应的客户端,包括:根据协议信息和主题信息确定与调用方对应的客户端,将数据对象发送至客户端。
在本发明实施例中,转化模块302,还用于:在从配置中心获取与调用方和请求路径信息对应的网关配置信息之前,确定本地缓存中不存在网关配置信息,在从配置中心获取与调用方和请求路径信息对应的网关配置信息之后,将网关配置信息保存在本地缓存中;
当本地缓存中存在网关配置信息时,从本地缓存中获取网关配置信息。
本发明实施例的消息处理的装置可以为集成网关系统,如图4所示为现有技术的网关系统进行消息处理的方法的流程示意图。外部业务系统发送业务1和业务2的HTTP请求到网关系统,网关系统的Controller1和Controller2分别解析业务1和业务2,然后分别将业务1和业务2的业务请求数据转化为数据对象,将包含数据对象的消息分别发送到对应的客户端的主题1和主题2中,客户端将数据对象序列化后转化为消息发送到消息队列中,后端业务系统监听消息,从消息队列中获取消息,分别对业务1和业务2进行处理。从图4可以看出,当增加新的业务方或业务场景时,需要增加新的Controller来解析处理,增加代码开发的工作量,且代码中Controller数量的增加不利于系统的维护,违背代码设备的SOLID原则,分散的Controller也会造成各种接入标准不一,不利于后续统一管理。
如图5所示为采用本发明实施例的一种集成网关系统进行消息处理的方法的流程示意图。外部业务系统发送业务1和业务2的HTTP请求到集成网关系统,集成网关系统的Controller统一接收业务1的HTTP请求和业务2的HTTP请求,接收到HTTP请求后,从HTTP请求中解析出令牌、调用方信息和请求路径信息,获取网关配置信息,根据鉴权配置信息对HTTP请求中的令牌、调用方信息和请求路径信息进行校验,校验成功后获取消息体信息,根据消息体信息的格式对HTTP请求中的请求数据进行反序列化,获得数据对象,然后对数据对象进行字段校验,包括非空校验和范围校验,字段校验成功后,根据获取的消息配置信息,确定业务1和业务2的各个HTTP请求对应的客户端和主题名称,然后将业务1的包含数据对象的消息发送至与业务1的HTTP请求对应的客户端的主题1中,将业务2的包含数据对象的消息发送至与业务2的HTTP请求对应的客户端的主题2中;客户端将业务1的数据对象序列化后发送至消息队列1中,后端业务系统监听消息,从消息队列1中获取包含数据对象消息,以对业务1进行处理;客户端将业务2的数据对象序列化后发送至消息队列2中,后端业务系统监听消息,从消息队列2中获取包含数据对象的消息,以对业务2进行处理。
如图6所示为本发明实施例的集成网关系统与配置中心的交互关系的示意图。集成网关系统包括解析模块、转化模块和发送模块;配置中心可以为基于Zookeeper等中间件实现的配置管理系统,配置中心存储有网关配置信息,包括鉴权配置信息、消息体信息和消息配置信息,鉴权配置信息包括令牌、密钥、调用方信息和请求路径信息中的一种或多种,消息体信息包括字段名、字段类型和字段属性父节点,消息配置信息包括协议信息(消息客户端类型)和消息主题信息。集成网关系统启动时向配置中心发送注册请求,将集成网关系统的网关信息(包括网关标识等信息)发送到配置中心,集成网关系统初始化时从配置中心获取一个配置的快照,配置的快照包括配置中心的所有配置信息,包括网关配置信息,并将配置的快照存储在本地缓存中,即本地缓存,如果配置中心的配置信息发生变更,则配置中心会实时向集成网关系统发送变动通知,并将变更后的配置快照推送到集成网关系统,以使得集成网关系统将变更后的配置快照存储在本地缓存中。当配置中心的配置信息未发生变更时,集成网关系统将从本地缓存中查询配置信息,如果集成网关系统在本地缓存中没有查询到配置信息,则查询请求会穿透到配置中心,如果配置中心没有这个配置信息,则集成网关系统会向本地缓存中存放一个空(NULL)值,防止查询请求穿透。
本发明实施例提供的消息处理的装置或集成网关系统能够统一接收调用方的调用请求,并采用统一的Controller处理调用请求,后续业务拓展时,更改配置中心的网关配置信息即可,避免了业务上的重复开发,配置中心也会将网关配置信息的变更通知实时推送至集成网关系统,通过集成网关系统和配置中心的结合,将通过的功能聚类,差异化的功能抽象成不同的接口,如具有不同协议信息发消息操作不同,实现对内核抽象,实现了业务和技术的解耦,可复用性高,符合代码设计的SOLID原则,提高了系统的健壮性,后续如果需要拓展协议信息,可以直接在外层修改,即变更配置中心的网关配置信息中的客户端类型即可。
本发明实施例还提供一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的消息处理方法。
本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的消息处理方法。
图7示出了可以应用本发明实施例的消息处理的方法或消息处理的装置的示例性系统架构700。
如图7所示,系统架构700可以包括多个服务器701、702、703,704和网络705。网络705用以在服务器701、702、703、704之间提供通信链路的介质。网络705可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器701、702、703和704可以是提供各种服务的服务器,例如对用户利用终端设备所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的消息处理的方法一般由服务器701、702、703和704执行,相应地,消息处理的装置一般设置于服务器701、702、703和704中。
应该理解,图7中的网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括解析模块、转化模块和发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,解析模块还可以被描述为“从调用方发送的调用请求中解析出请求数据和请求路径信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:从调用方发送的调用请求中解析出请求数据和请求路径信息;从配置中心获取与调用方和请求路径信息对应的网关配置信息,根据网关配置信息将请求数据转化为数据对象;将数据对象发送至与调用方对应的客户端。
根据本发明实施例的技术方案,通过统一接收调用方的调用请求,从调用请求中解析出请求数据和请求路径信息,根据从配置中心获取的与调用方和请求路径信息对应的网关配置信息将请求数据转化为数据对象使得数据对象支持Kafka、rabbitMq、activeMq和pulsar等多种协议,将数据对象发送至与协议信息和主题信息对应的客户端,以使得客户端将数据对象序列化后发送至消息中间件,实现调用请求转异步消息的协议转换,且易于水平拓展;通过部署配置中心网关配置信息,实现业务和技术的解耦,可复用性高,可以通过变更的配置中心的网关配置信息实现业务的拓展,避免了业务的重复开发,极大地减少代码开发的工作量,提高了开发效率,可应用于新零售电商业务的对外拓展中。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种消息处理的方法,其特征在于,包括:
从调用方发送的调用请求中解析出请求数据和请求路径信息;
从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息,根据所述网关配置信息将所述请求数据转化为数据对象;
将所述数据对象发送至与所述调用方对应的客户端。
2.根据权利要求1所述的方法,其特征在于,所述网关配置信息包括鉴权配置信息;根据所述网关配置信息将所述请求数据转化为数据对象之前,还包括:
根据所述鉴权配置信息对所述调用请求进行校验,并确认校验成功。
3.根据权利要求1所述的方法,其特征在于,所述网关配置信息包括消息体信息;根据所述网关配置信息将所述请求数据转化为数据对象,包括:
从所述消息体信息中获取字段名、字段类型和字段属性的父节点;
根据所述字段名、所述字段类型和所述字段属性的父节点,对所述请求数据进行反序列化,获得所述数据对象。
4.根据权利要求3所述的方法,其特征在于,对所述请求数据进行反序列化之前,包括:
判断所述请求数据中的字段是否为未配置的字段;
若是,过滤所述字段;
若否,判断所述字段的字段类型是否与已配置的字段类型匹配;
若是,保留所述字段,若否,过滤所述字段。
5.根据权利要求3所述的方法,其特征在于,对所述请求数据进行反序列化之后,还包括:
对所述数据对象进行字段校验,确定校验结果为校验成功;
当所述校验结果为校验失败时,结束流程;
其中,所述字段校验包括非空校验和范围校验中的至少一种,所述非空校验为校验所述字段的值是否为空值,所述范围校验为校验所述字段的值的范围是否在预设范围内。
6.根据权利要求1所述的方法,其特征在于,所述网关配置信息包括协议信息和主题信息,将所述数据对象发送至与所述调用请求对应的客户端,包括:
根据所述协议信息和主题信息确定与所述调用请求对应的客户端,将所述数据对象发送至所述客户端。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息之前,确定本地缓存中不存在所述网关配置信息,在从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息之后,将所述网关配置信息保存在所述本地缓存中;
当所述本地缓存中存在所述网关配置信息时,从所述本地缓存中获取所述网关配置信息。
8.一种消息处理的装置,其特征在于,包括:
解析模块,从调用方发送的调用请求中解析出请求数据和请求路径信息;
转化模块,从配置中心获取与所述调用方和所述请求路径信息对应的网关配置信息,根据所述网关配置信息将所述请求数据转化为数据对象;
发送模块,将所述数据对象发送至与所述调用方对应的客户端。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111220761.4A CN113973139B (zh) | 2021-10-20 | 2021-10-20 | 一种消息处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111220761.4A CN113973139B (zh) | 2021-10-20 | 2021-10-20 | 一种消息处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113973139A true CN113973139A (zh) | 2022-01-25 |
CN113973139B CN113973139B (zh) | 2024-09-20 |
Family
ID=79587964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111220761.4A Active CN113973139B (zh) | 2021-10-20 | 2021-10-20 | 一种消息处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113973139B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041044A (zh) * | 2023-08-23 | 2023-11-10 | 中电金信软件有限公司 | 网关配置方法、装置及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771960A (zh) * | 2009-01-04 | 2010-07-07 | 中国移动通信集团公司 | 移动网络的业务调用方法、业务网关、业务平台和系统 |
CN101876990A (zh) * | 2009-10-27 | 2010-11-03 | 用友软件股份有限公司 | 传递树形结构对象的方法 |
WO2015061938A1 (zh) * | 2013-10-28 | 2015-05-07 | 华为技术有限公司 | 一种重定向数据业务代理的方法、设备及系统 |
WO2016015436A1 (zh) * | 2014-07-28 | 2016-02-04 | 百度在线网络技术(北京)有限公司 | 平台授权方法、平台服务端、应用客户端及系统和存储介质 |
CN108924210A (zh) * | 2018-06-27 | 2018-11-30 | 杭州贝店科技有限公司 | 业务请求处理方法、装置、服务器及存储介质 |
WO2020233354A1 (zh) * | 2019-05-21 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 基于网关的外部服务调用方法、装置及终端设备 |
CN112422532A (zh) * | 2020-11-05 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 业务通信方法、系统、装置及电子设备 |
WO2021072881A1 (zh) * | 2019-10-16 | 2021-04-22 | 平安科技(深圳)有限公司 | 基于对象存储的请求处理方法、装置、设备及存储介质 |
CN112769863A (zh) * | 2021-01-26 | 2021-05-07 | 北京树米网络科技有限公司 | 一种业务请求报文数据的处理方法和装置 |
WO2021114874A1 (zh) * | 2020-07-24 | 2021-06-17 | 平安科技(深圳)有限公司 | 一种数据处理方法及计算机可读存储介质 |
CN113037831A (zh) * | 2021-03-04 | 2021-06-25 | 中国农业银行股份有限公司 | 一种服务网关报文处理方法及装置 |
CN113220481A (zh) * | 2021-04-30 | 2021-08-06 | 平安壹钱包电子商务有限公司 | 请求处理及反馈方法、装置、计算机设备及可读存储介质 |
CN113259436A (zh) * | 2021-05-12 | 2021-08-13 | 建信金融科技有限责任公司 | 网络请求的处理方法和装置 |
-
2021
- 2021-10-20 CN CN202111220761.4A patent/CN113973139B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771960A (zh) * | 2009-01-04 | 2010-07-07 | 中国移动通信集团公司 | 移动网络的业务调用方法、业务网关、业务平台和系统 |
CN101876990A (zh) * | 2009-10-27 | 2010-11-03 | 用友软件股份有限公司 | 传递树形结构对象的方法 |
WO2015061938A1 (zh) * | 2013-10-28 | 2015-05-07 | 华为技术有限公司 | 一种重定向数据业务代理的方法、设备及系统 |
WO2016015436A1 (zh) * | 2014-07-28 | 2016-02-04 | 百度在线网络技术(北京)有限公司 | 平台授权方法、平台服务端、应用客户端及系统和存储介质 |
CN108924210A (zh) * | 2018-06-27 | 2018-11-30 | 杭州贝店科技有限公司 | 业务请求处理方法、装置、服务器及存储介质 |
WO2020233354A1 (zh) * | 2019-05-21 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 基于网关的外部服务调用方法、装置及终端设备 |
WO2021072881A1 (zh) * | 2019-10-16 | 2021-04-22 | 平安科技(深圳)有限公司 | 基于对象存储的请求处理方法、装置、设备及存储介质 |
WO2021114874A1 (zh) * | 2020-07-24 | 2021-06-17 | 平安科技(深圳)有限公司 | 一种数据处理方法及计算机可读存储介质 |
CN112422532A (zh) * | 2020-11-05 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 业务通信方法、系统、装置及电子设备 |
CN112769863A (zh) * | 2021-01-26 | 2021-05-07 | 北京树米网络科技有限公司 | 一种业务请求报文数据的处理方法和装置 |
CN113037831A (zh) * | 2021-03-04 | 2021-06-25 | 中国农业银行股份有限公司 | 一种服务网关报文处理方法及装置 |
CN113220481A (zh) * | 2021-04-30 | 2021-08-06 | 平安壹钱包电子商务有限公司 | 请求处理及反馈方法、装置、计算机设备及可读存储介质 |
CN113259436A (zh) * | 2021-05-12 | 2021-08-13 | 建信金融科技有限责任公司 | 网络请求的处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
钱峥;胡亚旦;黄旋旋;: "基于"消息中间件"技术的气象信息总线", 气象科技, no. 02 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041044A (zh) * | 2023-08-23 | 2023-11-10 | 中电金信软件有限公司 | 网关配置方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113973139B (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815107B (zh) | 自动化测试的方法和装置 | |
CN112860451A (zh) | 一种基于SaaS的多租户数据处理方法和装置 | |
CN112445868B (zh) | 业务报文处理方法和装置 | |
WO2019015272A1 (zh) | 信息处理方法和装置 | |
CN111786939B (zh) | 物联网管理平台测试的方法、装置和系统 | |
CN113472889A (zh) | 微服务的调度系统及方法 | |
CN110795315A (zh) | 监控业务的方法和装置 | |
CN112202744B (zh) | 一种多系统数据通信方法和装置 | |
CN111831461A (zh) | 一种处理业务流程的方法和装置 | |
CN110795741A (zh) | 对数据进行安全性处理的方法和装置 | |
CN113973139B (zh) | 一种消息处理的方法和装置 | |
CN114979295A (zh) | 一种网关管理的方法和装置 | |
CN110764769A (zh) | 处理用户请求的方法和装置 | |
CN112084042A (zh) | 一种消息处理的方法和装置 | |
CN113946816A (zh) | 基于云服务的鉴权方法、装置、电子设备和存储介质 | |
CN112214500A (zh) | 数据对比的方法、装置、电子设备和存储介质 | |
CN110825538A (zh) | 一种基于mq可自定义数据类型动态进行数据交互的方法 | |
CN112929453B (zh) | 一种共享session数据的方法和装置 | |
CN113485902B (zh) | 测试业务平台的方法、装置、设备和计算机可读介质 | |
CN111984616B (zh) | 一种更新共享文件的方法、装置和系统 | |
CN112580975A (zh) | 业务流程处理方法和装置 | |
CN114780361A (zh) | 日志生成方法、装置、计算机系统及可读存储介质 | |
CN113326060A (zh) | 业务请求处理方法、装置和系统以及业务配置方法和装置 | |
CN113283991A (zh) | 一种区块链上交易数据的处理方法及装置 | |
CN113760487A (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 |