CN112685193A - 一种微服务网关接口暴露及聚合方法 - Google Patents

一种微服务网关接口暴露及聚合方法 Download PDF

Info

Publication number
CN112685193A
CN112685193A CN202011510859.9A CN202011510859A CN112685193A CN 112685193 A CN112685193 A CN 112685193A CN 202011510859 A CN202011510859 A CN 202011510859A CN 112685193 A CN112685193 A CN 112685193A
Authority
CN
China
Prior art keywords
interface
information
gateway
service
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.)
Granted
Application number
CN202011510859.9A
Other languages
English (en)
Other versions
CN112685193B (zh
Inventor
陶石
孟小勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yijiupi Information Technology Co ltd
Original Assignee
Yijiupi Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yijiupi Information Technology Co ltd filed Critical Yijiupi Information Technology Co ltd
Priority to CN202011510859.9A priority Critical patent/CN112685193B/zh
Publication of CN112685193A publication Critical patent/CN112685193A/zh
Application granted granted Critical
Publication of CN112685193B publication Critical patent/CN112685193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种微服务网关接口暴露,包括接口暴露模块和网关聚合模块;所述接口暴露模块以二方包的形式发布,基于SpringBoot自动配置机制及Dubbo框架HTTP协议支持,可分为接口信息解析获取和业务请求处理两部分功能。本发明可简化开发流程,开发人员只需专注业务功能开发;无需开发人员专门开发维护聚合网关项目;可视化配置维护简洁方便;部署方便,一键操作即可部署到目标环境。

Description

一种微服务网关接口暴露及聚合方法
技术领域
本发明涉及微服务网关技术领域,具体涉及一种微服务网关接口暴露及聚合方法。
背景技术
随着业务的不断扩张,现有的Dubbo微服务规模也越来越大,在此之前常规做法是由人专门开发维护一个网关项目,将不同微服务的接口引入该项目,对外提供HTTP服务,对请求JSON数据进行反序列化转换为需要的数据类型然后调用后端微服务接口,对方法返回结果再序列化成JSON返回给请求者;但是当后端某一个微服务的接口新增或变更时该项目都需要频繁进行修改、构建、部署,所有的操作都需要人为编码处理,随着规模增大也更难以维护。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种微服务网关接口暴露及聚合方法。
技术方案:为实现上述目的,本发明提供如下技术方案:
一种微服务网关接口暴露,包括接口暴露模块和网关聚合模块;
所述接口暴露模块以二方包的形式发布,基于SpringBoot自动配置机制及Dubbo框架HTTP协议支持,可分为接口信息解析获取和业务请求处理两部分功能,两部分功能均注册一个Servlet对象,对http请求进行处理;
所述网关聚合模块由DevOps平台提供,将聚合网关部署到Kong上,
优选地,所述接口信息解析获取的功能为注册DubboHttpApiListServlet对象,请求地址映射为api-list,返回缓存的接口元数据信息,供网关聚合模块获取生成配置,初次请求该接口时初始化获取该微服务提供的接口信息。
优选地,所述接口信息包括通过Dubbo注解@Service提供的微服务接口和服务中原生的MVC接口。
优选地,所述获取接口信息包括以下步骤:
步骤一:从Spring上下文对象中获取所有包含Dubbo注解@Service的对象,获取对象实现的接口信息,取得接口的全限定名、方法名、方法参数数据类型、方法返回数据类型信息,并根据约定格式生成映射URL信息,对将获取到的所有接口信息组成约定格式元数据保存到缓存列表;
步骤二:原生MVC接口部分通过从Spring上下文获取RequestMappingHandlerMapping对象,从中获取所有注册的MVC接口信息,将获取到的所有接口信息组成约定格式元数据保存到缓存列表。
优选地,所述业务请求处理为原生MVC接口请求不做额外处理,由SpringMVC框架自身调度处理;DispatcherServlet实例分发处理,根据请求URL获取缓存的接口元数据信息,根据元数据信息中的方法参数数据类型对请求数据JSON反序列化操作,创建对应接口方法代理对象,使用反序列化后的数据发起调用,然后将返回结果JSON序列化后返回给请求发起者。
优选地,所述Kong是运行Nginx中的一个Lua应用程序,通过数据库和API维护配置信息,替代Nginx配置文件形式实现相关配置调整。
本实施例的一种微服务网关接口暴露的聚合方法,包括以下步骤:
步骤一:创建一个聚合网关实例,包含基础信息网关名称和域名,以及描述、负责人等额外信息;
步骤二:添加接口信息:通过平台选择需要添加的微服务,并通过平台后端代理访问微服务的/api-list接口该微服务暴露的所有接口元数据信息,选择一个或多个需要配置的接口元数据信息添加到聚合网关示例,并对接口配置请求映射URL;
步骤三:部署:获取聚合网关示例配置的接口元数据信息及映射URL,在Kong的中添加服务和路由规则;
步骤四:请求处理:通过聚合网关域名及接口映射URL发起请求,Kong根据路由规则查找具体接口和微服务,并将请求转发给真实后端微服务,然后由微服务进行业务请求处理。
优选地,所述步骤一中的域名是二级域名。
有益效果:本发明,有益效果如下:
本发明可简化开发流程,开发人员只需专注业务功能开发;无需开发人员专门开发维护聚合网关项目;可视化配置维护简洁方便;部署方便,一键操作即可部署到目标环境。
附图说明
图1为本发明一种微服务网关接口暴露系统图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如附图1示,本发明实施例中一种微服务网关接口暴露,包括接口暴露模块和网关聚合模块;
所述接口暴露模块以二方包的形式发布,基于SpringBoot自动配置机制及Dubbo框架HTTP协议支持,可分为接口信息解析获取和业务请求处理两部分功能,两部分功能均注册一个Servlet对象,对http请求进行处理;
所述网关聚合模块由DevOps平台提供,将聚合网关部署到Kong上,
本实施例的接口信息解析获取的功能为注册DubboHttpApiListServlet对象,请求地址映射为api-list,返回缓存的接口元数据信息,供网关聚合模块获取生成配置,初次请求该接口时初始化获取该微服务提供的接口信息。
本实施例的接口信息包括通过Dubbo注解@Service提供的微服务接口和服务中原生的MVC接口。
本实施例的获取接口信息包括以下步骤:
步骤一:从Spring上下文对象中获取所有包含Dubbo注解@Service的对象,获取对象实现的接口信息,取得接口的全限定名、方法名、方法参数数据类型、方法返回数据类型信息,并根据约定格式生成映射URL信息,对将获取到的所有接口信息组成约定格式元数据保存到缓存列表;
步骤二:原生MVC接口部分通过从Spring上下文获取RequestMappingHandlerMapping对象,从中获取所有注册的MVC接口信息,将获取到的所有接口信息组成约定格式元数据保存到缓存列表。
本实施例的业务请求处理为原生MVC接口请求不做额外处理,由SpringMVC框架自身调度处理;DispatcherServlet实例分发处理,根据请求URL获取缓存的接口元数据信息,根据元数据信息中的方法参数数据类型对请求数据JSON反序列化操作,创建对应接口方法代理对象,使用反序列化后的数据发起调用,然后将返回结果JSON序列化后返回给请求发起者。
本实施例的Kong是运行Nginx中的一个Lua应用程序,通过数据库和API维护配置信息,替代Nginx配置文件形式实现相关配置调整。
本实施例的一种微服务网关接口暴露的聚合方法,包括以下步骤:
步骤一:创建一个聚合网关实例,包含基础信息网关名称和域名,以及描述、负责人等额外信息;
步骤二:添加接口信息:通过平台选择需要添加的微服务,并通过平台后端代理访问微服务的/api-list接口该微服务暴露的所有接口元数据信息,选择一个或多个需要配置的接口元数据信息添加到聚合网关示例,并对接口配置请求映射URL;
步骤三:部署:获取聚合网关示例配置的接口元数据信息及映射URL,在Kong的中添加服务和路由规则;
步骤四:请求处理:通过聚合网关域名及接口映射URL发起请求,Kong根据路由规则查找具体接口和微服务,并将请求转发给真实后端微服务,然后由微服务进行业务请求处理。
本实施例的步骤一中的域名是二级域名。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种微服务网关接口暴露,其特征在于,包括接口暴露模块和网关聚合模块;
所述接口暴露模块以二方包的形式发布,基于SpringBoot自动配置机制及Dubbo框架HTTP协议支持,可分为接口信息解析获取和业务请求处理两部分功能,两部分功能均注册一个Servlet对象,对http请求进行处理;
所述网关聚合模块由DevOps平台提供,将聚合网关部署到Kong上。
2.根据权利要求1所述的一种微服务网关接口暴露,其特征在于,所述接口信息解析获取的功能为注册DubboHttpApiListServlet对象,请求地址映射为api-list,返回缓存的接口元数据信息,供网关聚合模块获取生成配置,初次请求该接口时初始化获取该微服务提供的接口信息。
3.根据权利要求2所述的一种微服务网关接口暴露,其特征在于,所述接口信息包括通过Dubbo注解@Service提供的微服务接口和服务中原生的MVC接口。
4.根据权利要求2所述的一种微服务网关接口暴露,其特征在于,所述获取接口信息包括以下步骤:
步骤一:从Spring上下文对象中获取所有包含Dubbo注解@Service的对象,获取对象实现的接口信息,取得接口的全限定名、方法名、方法参数数据类型、方法返回数据类型信息,并根据约定格式生成映射URL信息,对将获取到的所有接口信息组成约定格式元数据保存到缓存列表;
步骤二:原生MVC接口部分通过从Spring上下文获取RequestMappingHandlerMapping对象,从中获取所有注册的MVC接口信息,将获取到的所有接口信息组成约定格式元数据保存到缓存列表。
5.根据权利要求1所述的一种微服务网关接口暴露,其特征在于,所述业务请求处理为原生MVC接口请求不做额外处理,由SpringMVC框架自身调度处理;DispatcherServlet实例分发处理,根据请求URL获取缓存的接口元数据信息,根据元数据信息中的方法参数数据类型对请求数据JSON反序列化操作,创建对应接口方法代理对象,使用反序列化后的数据发起调用,然后将返回结果JSON序列化后返回给请求发起者。
6.根据权利要求1所述的一种微服务网关接口暴露,其特征在于,所述Kong是运行Nginx中的一个Lua应用程序,通过数据库和API维护配置信息,替代Nginx配置文件形式实现相关配置调整。
7.一种如权利要求1-6所述微服务网关接口暴露的聚合方法,其特征在于,包括以下步骤:
步骤一:创建一个聚合网关实例,包含基础信息网关名称和域名,以及描述、负责人等额外信息;
步骤二:添加接口信息:通过平台选择需要添加的微服务,并通过平台后端代理访问微服务的/api-list接口该微服务暴露的所有接口元数据信息,选择一个或多个需要配置的接口元数据信息添加到聚合网关示例,并对接口配置请求映射URL;
步骤三:部署:获取聚合网关示例配置的接口元数据信息及映射URL,在Kong的中添加服务和路由规则;
步骤四:请求处理:通过聚合网关域名及接口映射URL发起请求,Kong根据路由规则查找具体接口和微服务,并将请求转发给真实后端微服务,然后由微服务进行业务请求处理。
8.根据权利要求7所述的一种微服务网关接口暴露的聚合方法,其特征在于,所述步骤一中的域名是二级域名。
CN202011510859.9A 2020-12-18 2020-12-18 一种微服务网关接口暴露及聚合方法 Active CN112685193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011510859.9A CN112685193B (zh) 2020-12-18 2020-12-18 一种微服务网关接口暴露及聚合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011510859.9A CN112685193B (zh) 2020-12-18 2020-12-18 一种微服务网关接口暴露及聚合方法

Publications (2)

Publication Number Publication Date
CN112685193A true CN112685193A (zh) 2021-04-20
CN112685193B CN112685193B (zh) 2024-03-22

Family

ID=75450429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011510859.9A Active CN112685193B (zh) 2020-12-18 2020-12-18 一种微服务网关接口暴露及聚合方法

Country Status (1)

Country Link
CN (1) CN112685193B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242221A (zh) * 2021-04-29 2021-08-10 湖南快乐阳光互动娱乐传媒有限公司 一种基于http微服务网关的协议转换方法及协议转换装置
CN113364853A (zh) * 2021-06-02 2021-09-07 北京奇艺世纪科技有限公司 一种业务服务系统、业务请求方法及网关设备
CN113419713A (zh) * 2021-07-20 2021-09-21 国家电网有限公司客户服务中心 一种面向网上国网业务能力的api封装编排方法
CN113448689A (zh) * 2021-07-09 2021-09-28 中国银行股份有限公司 运行期Dubbo协议转换装置及方法
CN113973135A (zh) * 2021-10-19 2022-01-25 北京沃东天骏信息技术有限公司 数据缓存处理方法、装置、缓存网格平台和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019104975A1 (zh) * 2017-11-30 2019-06-06 平安科技(深圳)有限公司 基于dubbo框架的远程调用方法、服务器及存储介质
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110971614A (zh) * 2019-12-17 2020-04-07 软通动力信息技术(集团)有限公司 物联网适配方法、系统、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019104975A1 (zh) * 2017-11-30 2019-06-06 平安科技(深圳)有限公司 基于dubbo框架的远程调用方法、服务器及存储介质
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110971614A (zh) * 2019-12-17 2020-04-07 软通动力信息技术(集团)有限公司 物联网适配方法、系统、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_39941859: "spring cloud alibaba微服务原理与实战_SpringCloud微服务实战(十一)-Zuul及其实现原理...", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_39941859/article/details/111018475> *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242221A (zh) * 2021-04-29 2021-08-10 湖南快乐阳光互动娱乐传媒有限公司 一种基于http微服务网关的协议转换方法及协议转换装置
CN113364853A (zh) * 2021-06-02 2021-09-07 北京奇艺世纪科技有限公司 一种业务服务系统、业务请求方法及网关设备
CN113364853B (zh) * 2021-06-02 2022-10-25 北京奇艺世纪科技有限公司 一种业务服务系统、业务请求方法及网关设备
CN113448689A (zh) * 2021-07-09 2021-09-28 中国银行股份有限公司 运行期Dubbo协议转换装置及方法
CN113419713A (zh) * 2021-07-20 2021-09-21 国家电网有限公司客户服务中心 一种面向网上国网业务能力的api封装编排方法
CN113973135A (zh) * 2021-10-19 2022-01-25 北京沃东天骏信息技术有限公司 数据缓存处理方法、装置、缓存网格平台和存储介质

Also Published As

Publication number Publication date
CN112685193B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN112685193A (zh) 一种微服务网关接口暴露及聚合方法
EP3667500B1 (en) Using a container orchestration service for dynamic routing
JP5225399B2 (ja) デスクトップ・アプリケーション移行のためのシステムと方法
CN109857515B (zh) 桥接通信方法、装置、设备及计算机可读存储介质
CN110457144B (zh) 一种实现前端应用的方法、装置、介质和设备
CN110275831B (zh) 协议接口的mock数据校验方法和装置
CN112449750A (zh) 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统
CN106155673B (zh) 实现页面内容编辑器的方法、装置、服务器及用户设备
US8930443B1 (en) Distributed network page generation
US20170177727A1 (en) Methods for analyzing web sites using web services and devices thereof
CN116301951B (zh) 一种基于kubernetes的微服务应用安装升级方法及装置
CN111586097A (zh) 一种网络请求处理方法、计算设备及存储介质
CN111767229A (zh) 性能测试方法、装置和设备
CN107483559B (zh) Sdk服务的提供方法及装置
CN112015384A (zh) 一种接口映射方法和装置
CN111443920B (zh) 一种框架迁移方法及装置
CN111124924B (zh) Api部署方法、装置、电子设备及存储介质
CN107239265B (zh) Java函数与C函数的绑定方法及装置
US10200488B2 (en) Webpage loading method and apparatus
CN114969603A (zh) 基于5g消息的图片获取、图片生成方法及系统
CN112632941A (zh) 生成pdf格式公安文书的方法、装置、设备及存储介质
CN112667945A (zh) 一种基于前后端分离技术开发网站的seo优化方法
CN113608774B (zh) 一种演示数据动态生成方法、系统
Zaslavskiy et al. Implementation of the new REST API for open source LBS-platform Geo2Tag
CN116992183B (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