CN113242221B - 一种基于http微服务网关的协议转换方法及协议转换装置 - Google Patents
一种基于http微服务网关的协议转换方法及协议转换装置 Download PDFInfo
- Publication number
- CN113242221B CN113242221B CN202110472605.0A CN202110472605A CN113242221B CN 113242221 B CN113242221 B CN 113242221B CN 202110472605 A CN202110472605 A CN 202110472605A CN 113242221 B CN113242221 B CN 113242221B
- Authority
- CN
- China
- Prior art keywords
- protocol
- http
- information
- micro
- dubbo
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 26
- 235000006719 Cassia obtusifolia Nutrition 0.000 claims description 8
- 235000014552 Cassia tora Nutrition 0.000 claims description 8
- 244000201986 Cassia tora Species 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 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
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- 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/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于http微服务网关的协议转换方法及协议转换装置,包括:A,微服务网关获取并缓存注册的dubbo元数据信息;B,微服务网关接收到json格式的http协议请求后,根据http协议请求中的参数信息找到对应的dubbo元数据信息;C,微服务网关根据找到的dubbo元数据信息以及http协议请求中的json对象,解析json对象信息到java基本数据类型的hession2协议的byte buffer二进制流;D,微服务网关获取注册信息注册的provider,将接收到的hession2协议的byte buffer二进制流信息解析为json格式的字符串;步骤E,返回http协议的json格式的字符串。本发明可以有效地提高前后端以及各个业务之间,语言之间的调用通用性,快速将服务协议提供至前端和业务方调用方,有效地解决多语言之间的调用问题。
Description
技术领域
本发明特别涉及一种基于http微服务网关的协议转换方法及协议转换装置。
背景技术
目前国内外各个公司的服务都开始走向微服务化,用于快速迭代有效迭代服务,其中最重要的一环就是微服务网关,且有各种开源的微服务网关,但是,目前对协议的转换主要是基于微服务自身的接口支持,以及泛型协议调用。
目前我们应用的前端应用(APP、WEB页面、H5、各种小程序)和后端交互的常用方式是走json格式的http协议进行数据交互,而后端服务则大多采用微服务架构,业务服务部在做技术改造的过程中,就采用了dubbo的微服务架构,由于dubbo的微服务架构采用的是专有的dubbo协议来进行进程间通信,在java开发中,因为dubbo本身开源于java,所以应用间调用很方便。但是,当涉及跨语言,跨平台调用的时候,就会出现因dubbo协议不支持,或者支持难度比较大的情况而无法使用的问题。
图1中示出现有常用基于微服务网关将dubbo协议转换为http协议的原理图。现有常规的微服务网关解决dubbo协议转换的方法,主要是两种:一种是应用层面在mvc直接输出http协议的接口,这样的情况是,每一个提供的dubbo接口,都必须提供对应的consumer接口,才能提供http协议的接口;另外一种是采用泛化调用,将json字符串转化为map,并严格按pojo属性进行传递,序列化调用远程服务,远程服务再反序列化,解析成map,再解析为javabean,到方法调用,返回javabean,转化为map,序列化返回给网关,网关反序列化,解析成map,再返回json字符串。在调用中,因为会有大量临时对象需求,所以对内存需求很大,难以达到性能最佳,同时服务端也会对泛化请求多了一层map→pojo的转换,也会牺牲调部分dubbo原本的性能。
发明内容
本发明的目的在于,针对上述现有技术的不足,提供一种基于http微服务网关的协议转换方法及协议转换装置,用于解决协议统一公共化问题,以便快速地发布服务,以及解决服务调用时协议不支持的问题;本发明可以有效地提高前后端以及各个业务之间,语言之间的调用通用性,快速地将原本无法快速暴露的服务协议提供至前端和业务方调用方,有效地解决多语言之间的调用问题。
为解决上述技术问题,本发明所采用的技术方案是:
一种基于http微服务网关的协议转换方法,其特点是包括以下步骤:
步骤A,微服务网关获取并缓存注册的dubbo元数据信息;
步骤B,微服务网关接收到json格式的http协议请求后,根据http协议请求中的参数信息找到对应的dubbo元数据信息;
步骤C,微服务网关根据找到的dubbo元数据信息以及http协议请求中的json对象,解析json对象信息到java基本数据类型的hession2协议的byte buffer二进制流;
步骤D,微服务网关获取注册信息注册的provider,将接收到的hession2协议的byte buffer二进制流信息解析为json格式的字符串;
步骤E,微服务网关返回http协议的json格式的字符串。
作为一种优选方式,所述步骤A中,dubbo元数据信息包括dubbo服务的provider、consumer的基础K/V的数据存储信息。
作为一种优选方式,consumer的基础K/V的数据存储信息包括请求的接口地址信息、请求类型、dubbo版本、version、返回对象信息。
基于同一个发明构思,本发明还提供了一种基于http微服务网关的协议转换装置,其特点是所述微服务网关被配置为用于执行所述协议转换方法的步骤。
与现有技术相比,本发明采用从元数据中心获取到注册的dubbo元数据信息,采用逐步解析的模式解析json对象和元数据的映射关系,组装成最终的hession2序列化的buffer,请求对应的provider,再将接收到的hession2序列化的byte buffer解析为json字符串,最终输出返回json格式的字符串。本发明可以有效地提高前后端以及各个业务之间,语言之间的调用通用性,快速地将原本无法快速暴露的服务协议提供至前端和业务方调用方,有效地解决多语言之间的调用问题。
附图说明
图1为现有常用基于微服务网关将dubbo协议转换为http协议的原理图。
图2为本发明基于http微服务网关的协议转换方法的原理示意图。
具体实施方式
如图2所示,基于http微服务网关的协议转换方法包括以下步骤:
步骤A,微服务网关获取并缓存注册的dubbo元数据信息;dubbo元数据信息包括dubbo服务的provider、consumer的基础K/V的数据存储信息。consumer的基础K/V的数据存储信息包括请求的接口地址信息、请求类型、dubbo版本、version、返回对象信息等。
步骤B,微服务网关接收到json格式的http协议请求。其中,请求body包括接口信息,版本信息,以及请求的json字符串。通过http协议请求中的接口版本等相关信息,找到对应的dubbo元数据接口信息。也可以在url连接中分别约定接口版本等参数信息,body中发送dubbo请求的json对象。
步骤C,微服务网关根据找到的dubbo元数据信息以及http协议请求中的json对象,进行协议转换,解析json对象信息到java基本数据类型的hession2协议的byte buffer二进制流。遍历读取整个json字符串,对每一个读取到的json片段通过元数据获取其类型,并使用hession2协议详细写入到buffer中。将hession2协议的byte buffer,请求对应的远程服务,远程服务转化为对应的javabean,请求对应的方法,返回对应的javabean,并将javabean转化为byte buffer,给到微服务网关。
步骤D,微服务网关获取注册信息注册的provider,将接收到的hession2协议的byte buffer二进制流信息解析为json格式的字符串;
步骤E,微服务网关通过http协议,返回json格式的字符串。
本发明还提供了一种基于http微服务网关的协议转换装置,所述微服务网关被配置为用于执行所述协议转换方法的步骤。
本发明的核心作用就是用来转换dubbo协议到json格式的http协议。http微服务网关的协议转换,基于java服务的通用性,依赖元数据进行将json格式的请求转换为java基本数据类型的dubbo协议,进行dubbo服务调用,以及将返回的dubbo协议信息返回json格式的协议,通过http微服务网关,形成json格式的http协议请求→dubbo协议后端服务→dubbo协议返回数据→json文件,形成前端和业务相关相互的友好调用链。
将本发明应用于“视听媒体微服务关键技术研究与应用”项目中(项目编号:2019YFB1405900),具体包括:
1、定义通用的微服务请求信息相关参数,以及body,request的json对象。主要参数为:interface=接口信息,methon=方法,version=版本,group=组。
2、微服务网关接收http请求,根据参数信息找到对应的元数据信息。
3、微服务网关根据找到的元数据信息,以及request的json对象,解析json对象信息到java基本数据类型的hession2协议的byte buffer二进制流。
4、微服务网关拿到注册信息注册的provider,负载均衡请求到具体的实例。
5、微服务网关根据provider返回的byte buffer二进制流信息,根据元数据的methos.returnType,做相应的解析到基本的type类型,再到json对象。
6、微服务网关最后返回http协议的json格式字符串。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是局限性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护范围之内。
Claims (4)
1.一种基于http微服务网关的协议转换方法,其特征在于,包括以下步骤:
步骤A,微服务网关获取并缓存注册的dubbo元数据信息;
步骤B,微服务网关接收到json格式的http协议请求后,根据http协议请求中的参数信息找到对应的dubbo元数据信息;
步骤C,微服务网关根据找到的dubbo元数据信息以及http协议请求中的json对象,进行协议转换,解析json对象信息到java基本数据类型的hession2协议的byte buffer二进制流;遍历读取整个json字符串,对每一个读取到的json片段通过元数据获取其类型,并使用hession2协议详细写入到buffer中,将hession2协议的byte buffer,请求对应的远程服务,远程服务转化为对应的javabean,请求对应的方法,返回对应的javabean,并将javabean转化为byte buffer,给到微服务网关;
步骤D,微服务网关获取注册信息注册的provider,将接收到的hession2协议的bytebuffer二进制流信息解析为json格式的字符串;
步骤E,微服务网关返回http协议的json格式的字符串。
2.如权利要求1所述的基于http微服务网关的协议转换方法,其特征在于,所述步骤A中,dubbo元数据信息包括dubbo服务的provider、consumer的基础K/V的数据存储信息。
3.如权利要求2所述的基于http微服务网关的协议转换方法,其特征在于,consumer的基础K/V的数据存储信息包括请求的接口地址信息、请求类型、dubbo版本、version、返回对象信息。
4.一种基于http微服务网关的协议转换装置,其特征在于,所述微服务网关被配置为用于执行权利要求1~3之一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472605.0A CN113242221B (zh) | 2021-04-29 | 2021-04-29 | 一种基于http微服务网关的协议转换方法及协议转换装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472605.0A CN113242221B (zh) | 2021-04-29 | 2021-04-29 | 一种基于http微服务网关的协议转换方法及协议转换装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113242221A CN113242221A (zh) | 2021-08-10 |
CN113242221B true CN113242221B (zh) | 2022-08-23 |
Family
ID=77131472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110472605.0A Active CN113242221B (zh) | 2021-04-29 | 2021-04-29 | 一种基于http微服务网关的协议转换方法及协议转换装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113242221B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726869A (zh) * | 2021-08-26 | 2021-11-30 | 阿里巴巴(中国)有限公司 | 通信方法、网关以及电子设备 |
CN114205191B (zh) * | 2021-12-13 | 2023-09-15 | 四川启睿克科技有限公司 | 一种api网关***及运行方法 |
CN114942856B (zh) * | 2022-07-22 | 2022-11-04 | 浙江中控技术股份有限公司 | 微服务***的数据处理方法、装置及电子设备 |
CN115604333B (zh) * | 2022-10-12 | 2023-09-12 | 江苏赛融科技股份有限公司 | 基于dubbo的分布式大数据分析服务调度方法及*** |
CN116192933B (zh) * | 2022-12-12 | 2023-09-19 | 北京领雁科技股份有限公司 | 一种基于微服务网关动态扩展非http协议的方法和*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255615B (zh) * | 2017-11-30 | 2022-03-01 | 平安科技(深圳)有限公司 | 跨语言调用方法、服务器及存储介质 |
US10503726B2 (en) * | 2017-12-21 | 2019-12-10 | Adobe Inc. | Reducing frontend complexity for multiple microservices with consistent updates |
CN110780950B (zh) * | 2019-10-24 | 2024-02-20 | 深圳前海环融联易信息科技服务有限公司 | 接口元数据管理方法、装置、计算机设备及存储介质 |
CN110990047B (zh) * | 2019-11-06 | 2021-11-19 | 北京云思畅想科技有限公司 | 用于多个微服务架构的融合方法及装置 |
CN112256246A (zh) * | 2020-09-18 | 2021-01-22 | 许继集团有限公司 | 一种用于电力***中支持跨语言调用的微服务集成架构 |
CN112685193B (zh) * | 2020-12-18 | 2024-03-22 | 易久批信息技术有限公司 | 一种微服务网关接口暴露及聚合方法 |
-
2021
- 2021-04-29 CN CN202110472605.0A patent/CN113242221B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113242221A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113242221B (zh) | 一种基于http微服务网关的协议转换方法及协议转换装置 | |
US8069451B2 (en) | System and method of compact messaging in network communications by removing tags and utilizing predefined message definitions | |
US6779154B1 (en) | Arrangement for reversibly converting extensible markup language documents to hypertext markup language documents | |
US8626951B2 (en) | Interoperability of network applications in a communications environment | |
CN108989356A (zh) | 一种api网关实现协议转换的方法 | |
CN112511591B (zh) | 一种医院接口数据交互的实现方法、装置、设备和介质 | |
CN100392650C (zh) | 增强域名***中的数据库性能的方法、***及名称服务器 | |
US7904111B2 (en) | Mobile exchange infrastructure | |
US20050188111A1 (en) | Method and system for creating pervasive computing environments | |
US20090150905A1 (en) | Integrating non-xml protocols into web browsing applications | |
US20050060431A1 (en) | System, apparatus, and method for using reduced web service messages | |
CN101609415A (zh) | 基于中间件的通用服务调用***及方法 | |
CN101882293A (zh) | 国内托管银行与境外托管代理银行间的数据处理方法及*** | |
CN111431746A (zh) | 一种api网关迁移方法及*** | |
CN103002047B (zh) | 一种rpc式web服务架构方法 | |
CN111443946B (zh) | Ios***与页面的交互方法、***、服务器和存储介质 | |
CN101039320A (zh) | 用于提供客户应用和Web服务之间的接口的方法和*** | |
CN109005163B (zh) | 一种http动态请求服务调用方法 | |
CN106506672B (zh) | 浏览器智能密钥盘的无组件访问方法 | |
CN111125207B (zh) | 一种数据获取方法、装置、连接器及presto引擎 | |
CN111314375B (zh) | 医保数据适配引擎、医保数据适配方法、电子设备及存储介质 | |
US20040019633A1 (en) | MIME encoding of values for web procedure calls | |
CN105224319A (zh) | 基于dom4j实现XBRL实例文档预览的方法 | |
US7743385B2 (en) | System and method for simplification of data structure in wireless communications | |
CN105376273A (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 |