CN113709166A - 分布式业务网关实现方法、装置、计算机设备及存储介质 - Google Patents
分布式业务网关实现方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113709166A CN113709166A CN202111014732.2A CN202111014732A CN113709166A CN 113709166 A CN113709166 A CN 113709166A CN 202111014732 A CN202111014732 A CN 202111014732A CN 113709166 A CN113709166 A CN 113709166A
- Authority
- CN
- China
- Prior art keywords
- request packet
- packet
- communication protocol
- protocol
- request
- 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
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/22—Parsing or analysis of headers
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种分布式业务网关实现方法、装置、计算机设备及计算机可读存储介质,所述方法包括:接收***网关转发的客户端的第一请求包,对第一请求包进行协议解析;通过自定义通信协议对第一请求包进行协议转换得到第二请求包,并将第二请求包转发至目标业务***的微服务;其中,目标业务***的微服务基于自定义通信协议解析第二请求包,响应第二请求包的数据请求返回第一响应包;接收所述响应包,基于自定义通信协议对第一响应包进行转换得到第一通信协议格式的第二响应包;将第二响应包转发至***网关,由***网关返回至客户端;该技术方案降低了业务网关复杂性,避免了业务***重复建设,降低了业务***的开发难度和运维负担。
Description
技术领域
本申请涉及计算机技术领域,尤其是一种分布式业务网关实现方法、装置、计算机设备及计算机可读存储介质。
背景技术
在传统的服务***中,一般是通过***网关将客户端的业务请求数据转发到不同的后台的业务***,由于不同时期接入的客户端设备采用不同的通信协议;如TCP协议、HTTP协议和Web Socket协议,另外还有MQTT协议、QUIC协议等等。
因此,要接入这些客户端设备,必须单独为每个项目单独建立业务网关来处理相应的协议数据,如图1所示,图1是常规的业务网关***示意图,***接入多种客户端1-n,后台也相应设置了基于不同通信协议的网关1-n,以及基于不同通信协议的业务***1-n,n≥2,才能够响应客户端的业务请求。
随着业务发展,***同接入的客户端种类也越来越多,业务网关的部署也越来越多,业务***需要重复建设,极大增加了业务***的开发难度和运维负担。
发明内容
为了解决上述技术缺陷之一,本申请提供一种分布式业务网关实现方法、装置、计算机设备及计算机可读存储介质,构建了统一业务网关,降低了业务***的开发难度和运维负担。
一种分布式业务网关实现方法,包括:
接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议;
通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包;
接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包;
将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
在一个实施例中,接收***网关转发的客户端的第一请求包之前,还包括:
基于预先配置的协议解析端口监听***网关发送的连接请求;其中,所述连接请求由采用不同通信协议客户端发送至所述***网关;
根据所述连接请求获取客户端对应要访问的目标业务***;
建立与所述客户端与目标业务***之间的通信链路。
在一个实施例中,所述的分布式业务网关实现方法,还包括:
建立与***网关的通信连接;
接收所述***网关转发的客户端的连接请求;
对所述连接请求进行解析,获取该连接请求访问对应的业务***的认证信息;
利用所述认证信息到认证中心对所述客户端进行认证;
若认证通过,接收***网关转发的客户端的第一请求包,否则拒绝该连接请求。
在一个实施例中,通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,包括:
调用预设的协议代理模块对所述第一请求包进行解析;其中,所述协议代理模块包括多种客户端采用第一通信协议的解析模块;
在确认所述第一请求包完整性后,将所述第一请求包的包头转换成业务***地址;
基于所述自定义通信协议将所述第一请求包的包体内容封装成第二请求包。
在一个实施例中,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包,包括:
根据所述自定义通信协议对所述第一响应包进行解析,获取响应数据内容;
确定所述客户端采用的第一通信协议;
基于所述第一通信协议对所述响应数据内容进行打包,得到第二响应包。
在一个实施例中,基于所述自定义通信协议将所述第一请求包的包体内容封装成第二请求包之前,还包括:
采用JSON协议对所述第一请求包的包体内容进行封装,得到JSON协议数据内容;
将所述JSON协议数据内容放置到第二请求包的包体字段中;其中,所述业务***接收到所述第二请求包后,对所述JSON协议数据内容进行响应处理。
在一个实施例中,所述自定义通信协议的结构包括:
包长:表示整个请求包体的长度;
保留字:暂时不起作用,用于后期协议扩展;
命令字:用于表示包体的控制命令;
标志:用于区分同步或者异步调用;
方法长度:表示方法名的长度;
序列长度:表示请求包序列号的长度;
方法名:表示调用的方法名称;
包体:封装请求包的数据内容。
在一个实施例中,所述包长的字段长度为4字节,所述保留字的字段长度为1字节,所述命令字的字段长度为1字节,所述标志的字段长度为1字节;所述方法长度的字段长度为1字节,所述序列长度字段长度为8字节;所述方法名字段长度为方法长度字节,所述包体字段长度为包体长度字节。
在一个实施例中,所述的分布式业务网关实现方法,还包括:对所述第二请求包的保留字进行配置,标注所述客户端采用的原有通信协议;
其中,所述业务***接收到所述第二请求包后,解析所述保留字的字段内容得到所述原有通信协议,并根据所述原有通信协议透传到该通信协议原有业务***进行响应。
一种分布式业务网关实现装置,包括:
请求接收单元,用于接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议;
第一转换单元,用于通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包;
第二转换单元,用于接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包;
响应转发单元,用于将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
一种计算机设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述的分布式业务网关实现方法。
一种计算机可读存储介质,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行上述的分布式业务网关实现方法。
本申请的技术方案,具有如下有益效果:
通过接收***网关转发的不同协议的客户端的请求包,依据自定义通信协议进行协议转换得到内部传输的请求包,再转发至业务***的微服务进行响应,最后进行反向转换处理后返回至客户端;该技术方案实现了后台***采用统一的业务网关来进行协议转换,降低了业务网关复杂性,避免了业务***重复建设;同时在统一了网络协议后,后端服务可以采用基于容器云平台技术的微服务***,实现服务应用部署的容器化,可以进行精细的资源调度,降低了业务***的开发难度和运维负担。
进一步的,通过调用预设的协议代理模块对第一请求包进行解析,在确认第一请求包完整性后,将第一请求包的包头转换成业务***地址,并基于自定义通信协议将第一请求包的包体内容封装成第二请求包;该方案通过模块化的代理服务来对应不同的通信协议客户端,当需要扩展到其他通信协议时,只要实现相应通信协议的代理模块,即可添加到业务网关的支持协议中来,便于协议扩展。
进一步的,采用JSON协议对第一请求包的包体内容进行封装,然后通过自定义通信协议来承载JSON协议数据内容,放置在自定义通信协议的包体字段,业务网关和业务***对自定义通信协议进行解析后,取得JSON协议数据内容,由于JSON格式能够直接为服务器端代码使用,解析后便可直接进行业务处理,大大简化了服务器端和客户端的代码开发量;同时,JSON数据内容还可以进行压缩,减小传输数据的体积,节省带宽占用。
进一步的,本申请还提供了基于RPC协议开发的自定义通信协议,该通信协议包括包长、保留字、命令字、标志、方法长度、序列长度、方法名和包体等;该协议采用远程过程调用协议和分布式方式,便于实现各种协议转换为统一协议,且与常用的GRPC协议对比,也具有更优的QPS,通信效率更高。
进一步的,通过对第二请求包的保留字进行配置,标注客户端采用的原有通信协议;业务网关通过解析保留字的字段内容,根据客户端原有通信协议将第二请求包透传到原有业务***进行响应;该技术方案可以兼容旧有通信协议,并且还可以支持对原有通信协议业务处理回滚功能。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是常规的业务网关***示意图;
图2是本申请的娱乐设备的硬件环境图;
图3是本申请的分布式业务网关实现方法流程图;
图4是业务网关的模块化代理示意图;
图5是一个示例的TCP协议转换为ARPC协议示意图;
图6是一个示例的分布式业务网关实现方法流程图;
图7是一个示例的服务架构图;
图8是本申请的分布式业务网关实现装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。
参考图2所示,图2是本申请的分布式业务网关实现方法的硬件环境图,如图中,本申请采用的业务网关***由***网关和业务网关构成,业务网关为统一的网关,业务***为统一的***平台,业务***通过不同微服务来提供不同的业务服务响应,本申请的分布式业务网关实现方法是在业务网关上实现。
下面对本申请的分布式业务网关实现方法实施例进行描述。
参考图3所示,图3是一个实施例的分布式业务网关实现方法流程图,包括:
S110,接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议。
对于第一通信协议,包括TCP协议、HTTP协议和Web Socket协议,还可以是MQTT协议、QUIC协议等等。
***网关接收到客户端的第一请求包后,将该第一请求包转发至业务网关,业务网关对第一请求包进行解析,得到请求包的数据内容。
作为实施例,在接收客户端的第一请求包之前,还可以包括建立通信链路的过程,具体的,该过程包括:
首先,基于预先配置的协议解析端口监听***网关发送的连接请求;其中,所述连接请求由采用不同通信协议客户端发送至所述***网关。然后,根据所述连接请求获取客户端对应要访问的目标业务***;并建立与所述客户端与目标业务***之间的通信链路。
上述实施例的技术方案,利用预先配置的协议解析端口监听***网关发送的连接请求,可以根据不同协议配置对应的端口,从而监督不同通信协议客户端的连接请求。
S120,通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包。
具体的,对于自定义通信协议,可以为基于RPC(Remote Procedure CallProtocol,远程过程调用协议)定义的协议,为了便于描述,自定义名称为ARPC协议(下文相同),采用统一的业务***,业务***部署多种微服务来为不同协议的客户端提供业务服务。
作为实施例,对于步骤S120的对第一请求包进行协议转换得到第二请求包的过程,可以包括:
S201,调用预设的协议代理模块对所述第一请求包进行解析;其中,所述协议代理模块包括多种客户端采用第一通信协议的解析模块。
S202,在确认所述第一请求包完整性后,将所述第一请求包的包头转换成业务***地址;进一步的,判断数据是否经过压缩,如果有压缩先解压,然后再进行转换。
S203,基于所述自定义通信协议将所述第一请求包的包体内容封装成第二请求包。
具体的,通过协议代理模块把第一通信协议与自定义通信协议中的协议共同部分抽象成统一的接口模板,在将第一请求包从第一通信协议转换成自定义通信协议时,无须关注相关协议细节,依据模板将接口实现,即可集成到网关***中。
上述实施例的技术方案,通过模块化的代理服务来对应不同的通信协议客户端,当需要扩展到其他通信协议时,只要实现相应通信协议的代理模块,即可添加到业务网关的支持协议中来,便于协议扩展。
参考图4,图4是业务网关的模块化代理示意图;图中,业务网关通过模块化的Agent(代理服务)来对应不同的协议客户端,设置了TCP Agent、HTTP Agent和Web SocketAgent几个代理服务模块,统一转换为ARPC协议格式,当业务网关需要支持其它通信协议时,比如MQTT协议、QUIC协议等,只要在业务网关中增设实现相应功能的MQTTAgent模块和QUIC Agent模块,便可添加到业务网关的支持协议中来。
为了更加清晰上述实施例的协议转换过程,下面结合TCP客户端来阐述一个示例。
参考图5所示,图5是一个示例的TCP协议转换为ARPC协议示意图;在该示例方案中,原有的TCP通信协议包头为24个字节,包体为业务请求数据,业务网关的TCPAgent模块将协议解析后,确认请求包完整性,把包头的服务码csbsncode转换成业务***地址,然后把包体内容封装到RPC调用协议进行传输。
上述实施例的方案,在TCP客户端与服务端在TCP协议基础上进行封装,通过自定义的封装协议来实现,实现版本控制、压缩、服务识别和安全验证等功能,从而保证上层应用的业务数据可靠性。
S130,接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包。
具体的,与访问过程处理相反,业务***处理数据请求后,返回处理结果,在步骤S120中,目标业务***的微服务基于自定义通信协议解析了第二请求包,对服务请求进行相应,得到第一响应包;对于业务请求可以遵循其常规处理,在本申请中不再赘述。
在一个实施例中,对于步骤S130中的转换得到第二响应包的过程,可以包括如下:
首先,根据所述自定义通信协议对所述第一响应包进行解析,获取响应数据内容;然后确定客户端采用的第一通信协议;再基于第一通信协议对响应数据内容进行打包,得到第二响应包。
上述实施例的方案,将业务***返回的基于自定义通信协议的第一响应包,根据原来转换时对应客户端的通信协议,将统一的通信协议再转换回客户端对应使用的通信协议。
S140,将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
此步骤中,基于客户端原有通信协议转换后,将第二响应包转发至***网关,***网关以透传方式转发给对应客户端,从而完成业务服务处理流程。
综合上述各实施例的技术方案,业务网关将接收自不同协议客户端的数据进行统一归化处理,然后路由转发给不同类型的业务***活着业务***的不同微服务,从而可以解决了业务***重复建设和复用的问题,确保关键业务链路稳定高效,提升业务创新能力。
为了更加清晰本申请的技术方案,下面结合附图阐述更多实施例。
参考图6所示,图6是一个示例的分布式业务网关实现方法流程图,在一个实施例中,在步骤S110之前,还可以包括对客户端进行认证的步骤。具体的,对于认证步骤如图6的s1~s5所示,可以包括如下:
s1,客户端向***网关发起连接请求,建立通信连接;
s2,***网关向业务网关转发的客户端的连接请求;
s3,业务网关解析连接请求,获取该连接请求访问对应的业务***的认证信息;
s4,业务网关利用所述认证信息到认证中心对所述客户端进行认证;
s5,认证中心返回认证结果,若认证通过,业务网关接收***网关转发的客户端的第一请求包,否则拒绝该连接请求。
在数据请求过程中:
s6,客户端发起业务请求,发送第一请求包至***网关;
s7,***网关转发第一请求包至业务网关;
s8,业务网关将第一请求包转换为第二请求包;
s9,业务网关将第二请求包转发至业务***;
s10,业务***返回第一响应包至业务网关;
s11,业务网关将第一响应包转换成第二响应包;
s12,业务网关将第二响应包转发至***网关;
s13,***网关将第二响应包返回至对应的客户端。
通过上述示例可以看出,后端的业务***使用同一业务网关***,无须单独为每个项目单独建立业务网关,大大减轻了开发和运维负担。
如上述实施例所述,在本申请的方案实现中设计了自定义通信协议,以此实现不同通信协议的统一归化处理,针对于自定义通信协议,下面提供若干实施例。
在一个实施例中,对于自定义通信协议的结构,参考下表:
包长 | 保留字 | 命令字 | 标志 | 方法长度 | 序列长度 | 方法名 | 包体 |
4字节 | 1字节 | 1字节 | 1字节 | 1字节 | 8字节 | 方法长度字节 | 包体长度字节 |
结合上述表格,自定义通信协议的结构描述为:
包长:表示整个请求包体的长度,其中,包长的字段长度可以为4字节;
保留字:暂时不起作用,用于后期协议扩展,所述保留字的字段长度可以为1字节;
命令字:用于表示包体的控制命令,其中,命令字的字段长度可以为1字节;
标志:用于区分同步或者异步调用,其中,标志的字段长度可以为1字节;
方法长度:表示方法名的长度,其中,方法长度的字段长度为1字节;
序列长度:表示请求包序列号的长度,其中,序列长度字段长度可以为8字节;
方法名:表示调用的方法名称,其中,方法名字段长度为方法长度字节;
包体:封装请求包的数据内容,其中,包体字段长度为包体长度字节。
如上述实施例的自定义通信协议,具有如下特性;
(1)支持同步和异步调用方式。
业务***可以通过同步调用或异步通知的方式返回数据,如果消息是异步通知,业务网关多实例间广播查找对应的连接进行发送数据。
(2)支持同步和异步通知方式。
客户端发起同步调用时,在客户端-***网关-业务网关-业务***建立起一个虚拟链路,未能返回数据前和设置的超时时间内,一直在等待状态,可以保证消息传递的实时性和可靠性。
客户端采用异步通知方式,客户端无须一直等待数据返回,当该异步功能完成后,通过状态、通知或回调来通知调用者,可以保证数据处理的高效。
(3)批量写。
通过批量写可以减少数据写入时间,提高写入效率。
(4)支持广播。
该自定义通信协议在协议层面支持了一对多的发送,相对于一般的RPC协议是单对单的情况,具有更换发送效果。
(5)支持中间件处理。
该自定义通信协议支持在原请求数据的基础上注入附加信息,从而实现自动化的数据监控。
(6)支持订阅/发布机制。
(7)支持调用链监控。
为了体现本申请采用的通信协议的优越性,下面阐述所述自定义通信协议ARPC与常用的GRPC协议测试对比,下表是测试环境和结果。
通过上述测试表格可以看出,本实施例提供的自定义通信协议的QPS更高(QPS是指每秒钟可以处理的请求数,是衡量***性能的一个重要指标)。
为了提高业务***处理效率,在进行协议转换过程中,本申请还提供如下改进技术方案。
在一个实施例中,在将第一请求包的包体内容封装成第二请求包之前,采用JSON协议对所述第一请求包的包体内容进行封装,得到JSON协议数据内容;然后将所述JSON协议数据内容放置到第二请求包的包体字段中;其中,所述业务***接收到所述第二请求包后,对所述JSON协议数据内容进行响应处理。
具体的,数据内容采用JSON协议进行传输,数据格式简单,易于读写,格式可以利用zlib进行压缩,支持多种语言,包括JavaScript、Golang、Java、C++……等等,JSON格式能够直接为服务器端代码使用。
上述实施例的技术方案,采用JSON协议对第一请求包的包体内容进行封装,然后通过自定义通信协议来承载JSON协议数据内容,放置在自定义通信协议的包体字段,业务网关和业务***对自定义通信协议进行解析后,取得JSON协议数据内容,由于JSON格式能够直接为服务器端代码使用,解析后便可直接进行业务处理,大大简化了服务器端和客户端的代码开发量;同时,JSON数据内容还可以进行压缩,减小传输数据的体积,节省带宽占用。
为了提高方案的兼容性,本申请还提供了兼容原有业务***的技术方案,下面结合实施例进行阐述。
在一个实施例中,业务网关还可以对第二请求包的保留字进行配置,标注所述客户端采用的原有通信协议,业务***接收到第二请求包后,解析保留字的字段内容得到所述原有通信协议,并根据所述原有通信协议透传到该通信协议原有业务***进行响应。
上述实施例的技术方案,通过对第二请求包的保留字进行配置,标注客户端采用的原有通信协议;业务网关通过解析保留字的字段内容,根据客户端原有通信协议将第二请求包透传到原有业务***进行响应;该技术方案可以兼容旧有通信协议,并且还可以支持对原有通信协议业务处理回滚功能。
参考图7所示,图7是一个示例的服务架构图,本申请的技术方案可以通过该服务框架上运行,如图示,安装在各种客户端设备上的调用方应用通过网关集群访问到容易云平台,其中,网关集群包括***网关和业务网关;容器云平台部署各个业务***的微服务,形成服务应用部署的容器化;在容器云平台包括了多个服务集群为客户端提供业务服务,同时,平台上搭建了日志管理,集群管理(包括配置中心和注册中心),消息集群(包括Kafka分布式消息***和RabbitMQ中间件),缓存集群(包括Redis服务),数据存储(采用MYSQL数据库和MangoDB数据库),监控管理等功能模块,实现了对平台的管理功能。
下面阐述本申请的分布式业务网关实现装置的实施例。
参考图8所示,图8是本申请的分布式业务网关实现装置的结构示意图,包括:
请求接收单元110,用于接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议;
第一转换单元120,用于通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包;
第二转换单元130,用于接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包;
响应转发单元140,用于将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
本实施例的分布式业务网关实现装置可执行本公开的实施例所提供的一种分布式业务网关实现方法,其实现原理相类似,本公开各实施例中的分布式业务网关实现装置中的各模块所执行的动作是与本公开各实施例中的分布式业务网关实现方法中的步骤相对应的,对于分布式业务网关实现装置的各模块的详细功能描述具体可以参见前文中所示的对应的分布式业务网关实现方法中的描述,此处不再赘述。
下面阐述本申请的计算机设备的实施例,该计算机设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据上述任意实施例的分布式业务网关实现方法。
下面阐述本申请的计算机可读存储介质的实施例,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行上述任意实施例的分布式业务网关实现方法。
上述实施例的分布式业务网关实现装置、计算机设备及计算机可读存储介质,通过接收***网关转发的不同协议的客户端的请求包,依据自定义通信协议进行协议转换得到内部传输的请求包,再转发至业务***的微服务进行响应,最后进行反向转换处理后返回至客户端;该技术方案实现了后台***采用统一的业务网关来进行协议转换,降低了业务网关复杂性,避免了业务***重复建设;同时在统一了网络协议后,后端服务可以采用基于容器云平台技术的微服务***,实现服务应用部署的容器化,可以进行精细的资源调度,降低了业务***的开发难度和运维负担。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种分布式业务网关实现方法,其特征在于,包括:
接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议;
通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包;
接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包;
将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
2.根据权利要求1所述的分布式业务网关实现方法,其特征在于,接收***网关转发的客户端的第一请求包之前,还包括:
基于预先配置的协议解析端口监听***网关发送的连接请求;其中,所述连接请求由采用不同通信协议客户端发送至所述***网关;
根据所述连接请求获取客户端对应要访问的目标业务***;
建立与所述客户端与目标业务***之间的通信链路。
3.根据权利要求1所述的分布式业务网关实现方法,其特征在于,还包括:
建立与***网关的通信连接;
接收所述***网关转发的客户端的连接请求;
对所述连接请求进行解析,获取该连接请求访问对应的业务***的认证信息;
利用所述认证信息到认证中心对所述客户端进行认证;
若认证通过,接收***网关转发的客户端的第一请求包,否则拒绝该连接请求。
4.根据权利要求1所述的分布式业务网关实现方法,其特征在于,通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,包括:
调用预设的协议代理模块对所述第一请求包进行解析;其中,所述协议代理模块包括多种客户端采用第一通信协议的解析模块;
在确认所述第一请求包完整性后,将所述第一请求包的包头转换成业务***地址;
基于所述自定义通信协议将所述第一请求包的包体内容封装成第二请求包。
5.根据权利要求4所述的分布式业务网关实现方法,其特征在于,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包,包括:
根据所述自定义通信协议对所述第一响应包进行解析,获取响应数据内容;
确定所述客户端采用的第一通信协议;
基于所述第一通信协议对所述响应数据内容进行打包,得到第二响应包。
6.根据权利要求4所述的分布式业务网关实现方法,其特征在于,基于所述自定义通信协议将所述第一请求包的包体内容封装成第二请求包之前,还包括:
采用JSON协议对所述第一请求包的包体内容进行封装,得到JSON协议数据内容;
将所述JSON协议数据内容放置到第二请求包的包体字段中;其中,所述业务***接收到所述第二请求包后,对所述JSON协议数据内容进行响应处理。
7.根据权利要求5所述的分布式业务网关实现方法,其特征在于,所述自定义通信协议的结构包括:
包长:表示整个请求包体的长度;
保留字:暂时不起作用,用于后期协议扩展;
命令字:用于表示包体的控制命令;
标志:用于区分同步或者异步调用;
方法长度:表示方法名的长度;
序列长度:表示请求包序列号的长度;
方法名:表示调用的方法名称;
包体:封装请求包的数据内容。
8.根据权利要求7所述的分布式业务网关实现方法,其特征在于,所述包长的字段长度为4字节,所述保留字的字段长度为1字节,所述命令字的字段长度为1字节,所述标志的字段长度为1字节;所述方法长度的字段长度为1字节,所述序列长度字段长度为8字节;所述方法名字段长度为方法长度字节,所述包体字段长度为包体长度字节。
9.根据权利要求7所述的分布式业务网关实现方法,其特征在于,还包括:对所述第二请求包的保留字进行配置,标注所述客户端采用的原有通信协议;
其中,所述业务***接收到所述第二请求包后,解析所述保留字的字段内容得到所述原有通信协议,并根据所述原有通信协议透传到该通信协议原有业务***进行响应。
10.一种分布式业务网关实现装置,其特征在于,包括:
请求接收单元,用于接收***网关转发的客户端的第一请求包,对所述第一请求包进行协议解析;其中,所述第一请求包采用第一通信协议;
第一转换单元,用于通过自定义通信协议对所述第一请求包进行协议转换得到第二请求包,并将所述第二请求包转发至所述目标业务***的微服务;其中,所述目标业务***的微服务基于所述自定义通信协议解析所述第二请求包,响应所述第二请求包的数据请求返回第一响应包;
第二转换单元,用于接收所述响应包,基于所述自定义通信协议对所述第一响应包进行转换得到第一通信协议格式的第二响应包;
响应转发单元,用于将所述第二响应包转发至所述***网关,由所述***网关返回至所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014732.2A CN113709166A (zh) | 2021-08-31 | 2021-08-31 | 分布式业务网关实现方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014732.2A CN113709166A (zh) | 2021-08-31 | 2021-08-31 | 分布式业务网关实现方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113709166A true CN113709166A (zh) | 2021-11-26 |
Family
ID=78658193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111014732.2A Pending CN113709166A (zh) | 2021-08-31 | 2021-08-31 | 分布式业务网关实现方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113709166A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125055A (zh) * | 2021-11-30 | 2022-03-01 | 神州数码***集成服务有限公司 | 多协议自动适配云原生网关***控制方法、***、设备及应用 |
CN114710566A (zh) * | 2022-06-06 | 2022-07-05 | 辰星(天津)自动化设备有限公司 | 机器人控制***的通讯交互方法、及机器人*** |
CN114978999A (zh) * | 2022-03-31 | 2022-08-30 | 华润网络(深圳)有限公司 | 多维调度流量的方法、装置、计算机设备及存储介质 |
CN115150364A (zh) * | 2022-06-29 | 2022-10-04 | 北京飞讯数码科技有限公司 | 支持多通信协议并发通信的业务请求处理***和方法 |
CN115190091A (zh) * | 2022-05-17 | 2022-10-14 | 贝壳找房(北京)科技有限公司 | 一种业务消息的推送方法和装置 |
CN115225606A (zh) * | 2022-07-11 | 2022-10-21 | 上海道客网络科技有限公司 | 一种容器云平台的跨网络协议的域名访问方法和*** |
CN115242871A (zh) * | 2022-08-03 | 2022-10-25 | 北京搜房科技发展有限公司 | 业务网关的服务方法及装置、存储介质及电子设备 |
CN115499518A (zh) * | 2022-07-29 | 2022-12-20 | 天翼云科技有限公司 | 一种微服务协议转换方法、装置和电子设备 |
CN116192933A (zh) * | 2022-12-12 | 2023-05-30 | 北京领雁科技股份有限公司 | 一种基于微服务网关动态扩展非http协议的方法和*** |
CN118018538A (zh) * | 2024-04-10 | 2024-05-10 | 深圳市天思智慧科技有限公司 | 一种物联网关使用外部程序模块通信的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411907A (zh) * | 2016-10-13 | 2017-02-15 | 广西咪付网络技术有限公司 | 一种数据传输方法和*** |
CN107835178A (zh) * | 2017-11-13 | 2018-03-23 | 北京奇艺世纪科技有限公司 | 一种多协议服务通信方法、装置以及电子设备 |
US20190317847A1 (en) * | 2016-12-22 | 2019-10-17 | Nippon Telegraph And Telephone Corporation | Rpc conversion processing system and rpc conversion method |
WO2019232961A1 (zh) * | 2018-06-05 | 2019-12-12 | 平安科技(深圳)有限公司 | 接口自动化方法、***、计算机设备和存储介质 |
CN113259430A (zh) * | 2021-05-11 | 2021-08-13 | 京东数字科技控股股份有限公司 | 一种消息调用方法和装置、电子设备及存储介质 |
-
2021
- 2021-08-31 CN CN202111014732.2A patent/CN113709166A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411907A (zh) * | 2016-10-13 | 2017-02-15 | 广西咪付网络技术有限公司 | 一种数据传输方法和*** |
US20190317847A1 (en) * | 2016-12-22 | 2019-10-17 | Nippon Telegraph And Telephone Corporation | Rpc conversion processing system and rpc conversion method |
CN107835178A (zh) * | 2017-11-13 | 2018-03-23 | 北京奇艺世纪科技有限公司 | 一种多协议服务通信方法、装置以及电子设备 |
WO2019232961A1 (zh) * | 2018-06-05 | 2019-12-12 | 平安科技(深圳)有限公司 | 接口自动化方法、***、计算机设备和存储介质 |
CN113259430A (zh) * | 2021-05-11 | 2021-08-13 | 京东数字科技控股股份有限公司 | 一种消息调用方法和装置、电子设备及存储介质 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125055A (zh) * | 2021-11-30 | 2022-03-01 | 神州数码***集成服务有限公司 | 多协议自动适配云原生网关***控制方法、***、设备及应用 |
CN114125055B (zh) * | 2021-11-30 | 2023-12-12 | 神州数码***集成服务有限公司 | 多协议自动适配云原生网关***控制方法、***、设备及应用 |
CN114978999A (zh) * | 2022-03-31 | 2022-08-30 | 华润网络(深圳)有限公司 | 多维调度流量的方法、装置、计算机设备及存储介质 |
CN115190091A (zh) * | 2022-05-17 | 2022-10-14 | 贝壳找房(北京)科技有限公司 | 一种业务消息的推送方法和装置 |
CN114710566A (zh) * | 2022-06-06 | 2022-07-05 | 辰星(天津)自动化设备有限公司 | 机器人控制***的通讯交互方法、及机器人*** |
CN115150364A (zh) * | 2022-06-29 | 2022-10-04 | 北京飞讯数码科技有限公司 | 支持多通信协议并发通信的业务请求处理***和方法 |
CN115225606B (zh) * | 2022-07-11 | 2023-09-08 | 上海道客网络科技有限公司 | 一种容器云平台的跨网络协议的域名访问方法和*** |
CN115225606A (zh) * | 2022-07-11 | 2022-10-21 | 上海道客网络科技有限公司 | 一种容器云平台的跨网络协议的域名访问方法和*** |
CN115499518A (zh) * | 2022-07-29 | 2022-12-20 | 天翼云科技有限公司 | 一种微服务协议转换方法、装置和电子设备 |
CN115242871A (zh) * | 2022-08-03 | 2022-10-25 | 北京搜房科技发展有限公司 | 业务网关的服务方法及装置、存储介质及电子设备 |
CN115242871B (zh) * | 2022-08-03 | 2024-03-01 | 北京搜房科技发展有限公司 | 业务网关的服务方法及装置、存储介质及电子设备 |
CN116192933A (zh) * | 2022-12-12 | 2023-05-30 | 北京领雁科技股份有限公司 | 一种基于微服务网关动态扩展非http协议的方法和*** |
CN116192933B (zh) * | 2022-12-12 | 2023-09-19 | 北京领雁科技股份有限公司 | 一种基于微服务网关动态扩展非http协议的方法和*** |
CN118018538A (zh) * | 2024-04-10 | 2024-05-10 | 深圳市天思智慧科技有限公司 | 一种物联网关使用外部程序模块通信的方法 |
CN118018538B (zh) * | 2024-04-10 | 2024-06-28 | 深圳市天思智慧科技有限公司 | 一种物联网关使用外部程序模块通信的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113709166A (zh) | 分布式业务网关实现方法、装置、计算机设备及存储介质 | |
CN112769938B (zh) | 一种基于QUIC的Kubernetes云边通信***与方法 | |
CN111600909A (zh) | 数据处理方法、装置、协议转换设备及存储介质 | |
CN112788128B (zh) | 业务信息的推送方法、装置、存储介质及电子装置 | |
EP1916600B1 (en) | Network robot system and method of communication therein | |
CN112104754A (zh) | 网络代理方法、***、装置、设备及存储介质 | |
CN112532673B (zh) | 消息发送方法及装置、计算机可读存储介质、电子设备 | |
CN109857572B (zh) | 实现远程调用的方法、装置、设备及计算机可读存储介质 | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
CN108446105A (zh) | 一种轻量级API Server开发框架及开发方法 | |
US20070130312A1 (en) | Web service provision apparatus and method and web service request apparatus and method | |
CN111901386B (zh) | 一种远端文件处理的方法、***、设备及可读存储介质 | |
CN114143729B (zh) | 用于与IoT设备进行数据收发的装置、方法及计算机可读存储介质 | |
Li et al. | Efficient oneM2M protocol conversion platform based on NB-IoT access | |
CN102325187A (zh) | 一种整合多种功能服务的***及方法 | |
CN115174340B (zh) | 支持多种协议类型与物联网操作***交互的通信方法 | |
CN110008032B (zh) | 一种通信方式的实现方法及电子设备 | |
CN110311936B (zh) | 客户端之间的通讯方法、装置、电子设备及存储介质 | |
CN110008033B (zh) | 一种和客户端进行通信的方法及电子设备 | |
CN111240867A (zh) | 一种信息通讯***及方法 | |
CN100375464C (zh) | 网络互连时各终端的数据通信方法 | |
CN111935135B (zh) | 一种基于cmsp的amqp协议代理方法 | |
CN114666313B (zh) | 一种参数采集方法、服务器、终端及可读存储介质 | |
CN115225706B (zh) | 数据传输方法、装置、车辆以及存储介质 | |
CN115914377A (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 |