CN112738184B - 一种插件式动态注册分布式微服务网关系统 - Google Patents

一种插件式动态注册分布式微服务网关系统 Download PDF

Info

Publication number
CN112738184B
CN112738184B CN202011552138.4A CN202011552138A CN112738184B CN 112738184 B CN112738184 B CN 112738184B CN 202011552138 A CN202011552138 A CN 202011552138A CN 112738184 B CN112738184 B CN 112738184B
Authority
CN
China
Prior art keywords
service
distributed
cluster
micro
gateway
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
Application number
CN202011552138.4A
Other languages
English (en)
Other versions
CN112738184A (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.)
Shanghai Jiamu Network Technology Co ltd
Original Assignee
Shanghai Jiamu Network 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 Shanghai Jiamu Network Technology Co ltd filed Critical Shanghai Jiamu Network Technology Co ltd
Priority to CN202011552138.4A priority Critical patent/CN112738184B/zh
Publication of CN112738184A publication Critical patent/CN112738184A/zh
Application granted granted Critical
Publication of CN112738184B publication Critical patent/CN112738184B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种插件式动态注册分布式微服务网关系统,涉及计算机互联网应用技术架构技术领域,包括微服务注册中心模块、分布式服务注册发现集群、分布式KV存储集群和PG网关,所述微服务注册中心模块分别与所述分布式服务注册发现集群和所述分布式KV存储集群连接,所述布式KV存储集群分别与所述分布式服务注册发现集群和所述PG网关连接。本发明实现请求路由规则动态注册、主动服务发现、免重启、多种插件形式的PG网关,具备高可用、高性能、高安全性、高扩展性和可跟踪特性。

Description

一种插件式动态注册分布式微服务网关系统
技术领域
本发明涉及计算机互联网应用技术架构技术领域,具体来说,涉及一种插件式动态注册分布式微服务网关系统。
背景技术
目前,随着互联网应用场景的丰富,后端服务器程序的实现与管理难度日益增长,传统企业的IT软件大多是各种功能的堆砌形成单体架构软件程序,程序的复杂性随着业务需求的增加而增加,单一功能的技术缺陷可能导致整个后端服务的不可用,大大提升运维难度、问题排查与修复时间以及程序的可理解度,降低服务整体可用性导致生产效率受到了极大影响。基于上述,单体程序会带来主机扩展性差、可靠性不高、运维成本高的缺点
微服务架构思想的出现一定程度解决了上述一体式程序所面临的问题。微服务模块功能单一,职责边界清晰,低耦合高内聚。但多组微服务间的通信、治理、统一对外能力输出成为新的研究课题。
目前常规的互联网后端架构,业务客户端通过互联网请求到达后台,通过防火墙过滤非法请求后转发到LVS(Linux Virtual Server,Linux虚拟服务器)端,LVS将请求通过负载均衡算法均匀的转发到后端网关服务器,网关侧通过预先配置好的转发规则将流量转发到后端服务。常见的后端网关服务组件有Nginx、Apache、Tengine、Kong、Openresty等,以上网关均提供静态配置文件方式对请求路由规则进行管理,Kong、Openresty等新型网关在Nginx的基础上增加了插件模式,通过路由、域名、用户等规则匹配方式进行插件的适用,但该方式在配置后需要重启或从载才能生效,在实际应用中存在一定安全隐患和不足。网关集群在配置更新时批量重载会对运行中的服务有闪断影响,异步批量重载可能将请求中的流量打到未开始重载的服务器上,出现流量负载不均衡的情况。Kong、Openresty提供的插件服务在实际业务应用中无法与业务系统进行联动,实用意义不大。而且基于LUA语言的插件开发方式对服务使用者形成一定的开发门槛、增加开发学习成本。
因此,亟需一种插件式动态注册分布式微服务网关系统。
检索中国发明专利CN 108512748 A,公开了一种微服务网关的实现方法,经6个步骤实现,微服务网关通过服务注册平台订阅服务,通过服务注册平台的配置中心配置微服务网关的流量控制、安全认证方式、协议转换模板到分布式缓存服务器,微服务网关本地高速缓存服务器通过订阅的方式从分布式缓存服务器更新配置,微服务网关通过异步的方式把日志发送给日志服务器,用于日志聚合,并通过微服务网关生成的UUID作为微服务日志跟踪,实现微服务的全链路跟踪;微服务网关通过异步的方式把服务的信息通知监控服务,用于作为微服务日志监控。其通过微服务网关,实现了防止暴露微服务接口,并封装系统的安全认证、服务访问,统一了服务提供接口格式,降低了外部机构对接的难度。但其存在一定安全隐患和不足。
网关集群在配置更新时批量重载会对运行中的服务有闪断影响,异步批量重载可能将请求中的流量打到未开始重载的服务器上,出现流量负载不均衡的情况。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种插件式动态注册分布式微服务网关系统,通过微服务注册中心模块、分布式服务注册发现集群、分布式KV存储集群和PG网关,可实现规则动态注册、主动服务发现、免重启、多种插件形式的PG网关,具备高可用、高性能、高安全性、高扩展性和可跟踪特性,以克服现有相关技术所存在的上述技术问题。
本发明的技术方案是这样实现的:
一种插件式动态注册分布式微服务网关系统,包括微服务注册中心模块、分布式服务注册发现集群、分布式KV存储集群和PG网关,所述微服务注册中心模块分别与所述分布式服务注册发现集群和所述分布式KV存储集群连接,所述分布式KV存储集群分别与所述分布式服务注册发现集群和所述PG网关连接,其中;
所述微服务注册中心模块,用于获取微服务节点启动时自身业务信息,并推送至KV存储;
所述分布式服务注册发现集群,用于对微服务节点注册,备案该服务可用节点,对服务节点的进行健康检查;
所述分布式KV存储集群,用于进行服务配置信息的存储/获取并实时广播更新对应的key-value;
所述PG网关,用于接收外部请求流量,对请求路由匹配到的配置插件进行预处理、分发透传请求、合并请求结果,起流量分发与预处理的作用。启动时watch分布式kv集群是用于动态化更新配置,实现免重启更新的能力。
进一步的,还包括微服务集群,用于微服务节点启动并构建服务注册信息。
进一步的,所述PG网关,还包括以下步骤:
预先进行网关节点启动,并向所述分布式KV存储集群获取服务注册信息并建立watch连接;
获取服务节点并向所述分布式服务注册发现集群更新服务可用节点建立watch连接;
更新路由规则并进行执行。
进一步的,所述分布式KV存储集群更新对应的key-value(服务配置信息)并广播watch客户端。
本发明的有益效果:
本发明一种插件式动态注册分布式微服务网关系统,通过微服务注册中心模块、分布式服务注册发现集群、分布式KV存储集群和PG网关,可实现规则动态注册、主动服务发现、免重启、多种插件形式的PG网关,具备高可用、高性能、高安全性、高扩展性和可跟踪特性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种插件式动态注册分布式微服务网关系统的原理框图。
图中:
1、微服务注册中心模块;2、分布式服务注册发现集群;3、分布式KV存储集群;4、PG网关。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种插件式动态注册分布式微服务网关系统。
如图1-图4所示,根据本发明实施例的插件式动态注册分布式微服务网关系统,包括微服务注册中心模块1、分布式服务注册发现集群2、分布式KV存储集群3和PG网关4,所述微服务注册中心模块1分别与所述分布式服务注册发现集群2和所述分布式KV存储集群3连接,所述分布式KV存储集群3分别与所述分布式服务注册发现集群2和所述PG网关4连接,其中;
所述微服务注册中心模块1,用于获取微服务节点启动时自身业务信息,并推送至KV存储;
所述分布式服务注册发现集群2,用于对微服务节点注册,备案该服务可用节点;
所述分布式KV存储集群3,用于进行KV服务并更新对应的key-value;
所述PG网关4,主要用于接收外部请求流量,对请求路由匹配到的配置插件进行预处理、分发透传请求、合并请求结果,起流量分发与预处理的作用。启动时watch分布式kv集群是用于动态化更新配置,实现免重启更新的能力。
其中,还包括微服务集群,用于微服务节点启动并构建服务注册信息。
其中,所述PG网关4,还包括以下步骤:
预先进行节点启动,并向所述分布式KV存储集群3获取服务注册信息建立watch连接;
获取服务节点并向所述分布式服务注册发现集群2更新服务可用节点建立watch连接;
更新路由规则并进行执行。
其中,所述分布式KV存储集群3更新对应的key-value并广播watch客户端。
借助于上述方案,通过微服务注册中心模块1、分布式服务注册发现集群2、分布式KV存储集群3和PG网关4,可实现规则动态注册、主动服务发现、免重启、多种插件形式的PG网关,具备高可用、高性能、高安全性、高扩展性和可跟踪特性。
另外,具体的,其微服务注册中心模块1,其微服务端在进行服务注册时将服务信息上传到微服务注册中心;注册中心根据服务注册时间、注册信息hash指纹判断服务是否有更新/回退等变动,如发生变动将注册信息推送到分布式KV存储中;注册中心将注册记录、注册信息持久化到数据库内。
而分布式服务注册发现集群2,该组件主要用于微服务、PG网关集群的统一管理,负责服务集群的可用节点维护、健康检测、可用性监控等工作。在本方案中,服务注册/发现组件不是必要条件。
分布式KV存储集群3,该组件主要用于微服务注册信息的存储与统一管理、注册信息的变动通知。在本方案中KV存储可使用其他可持久化存储中间件替换。
而PG网关4,PG网关是本方案的主要组成部分,负责网络请求的插件化过滤处理、路由转发、数据聚合等重要信息,具体的,其PG网关自身具备异常捕获、监控埋点、请求日志记录、trace跟踪、CORS等基本能力;本方案在规则匹配策略上支持多种匹配规则:域名匹配、Url Path匹配、请求方法匹配、url前缀匹配、请求头信息匹配,匹配规则可组合使用;根据微服务注册中心的注册信息,对匹配到的API定义的插件进行匹配遴选,为请求预处理做准备;请求预处理是将请求前的插件预先处理,如插件执行中不满足预期条件则直接返回中断后续流程。聚合请求头信息、参数为业务请求环节做准备;业务请求环节可结合服务注册/发现组件获取最新可用的微服务节点,在业务请求中支持多微服务节点负载均衡请求;微服务请求结束后按顺序处理请求后插件,并将响应信息聚合后回写到业务请求侧。
综上所述,借助于本发明的上述技术方案,可实现如下效果:
高可用:本方案支持分布式部署,解决网络架构中的单点问题,结合服务注册组件的健康检查自动过滤不可用节点,实现服务高可用。
配置更改免重启:基于watch机制,微服务注册中心将更新后的配置推送到PG网关,PG网关收到更新后的服务配置实时生效,在新请求进入时即刻生效。
动态服务发现:下游微服务节点的缩减扩充发生变化时,微服务方无需重新注册,服务注册与发现组件主动维护服务可用节点。PG网关同时支持静态IP、url方式请求。
多种插件形式:支持native、lua、url多种插件,lua插件发布、销毁均支持动态发现,无需重启;url类插件支持多种协议,覆盖更多动态化插件场景。
可跟踪性:基于trace技术,PG网关接收到的每一条请求,每一个流程均可日志化归档,便于业务查询,定位排障。
高性能:使用golang语言开发,相比其他语言的API网关具备更高的处理性能。
可感知:多方位多维度监控埋点,对网关服务运行状态可视化感知。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种插件式动态注册分布式微服务网关系统,其特征在于,包括微服务注册中心模块(1)、分布式服务注册发现集群(2)、分布式KV存储集群(3)和PG网关(4),所述微服务注册中心模块(1)分别与所述分布式服务注册发现集群(2)和所述分布式KV存储集群(3)连接,所述分布式KV存储集群(3)分别与所述分布式服务注册发现集群(2)和所述PG网关(4)连接,其中;
所述微服务注册中心模块(1),用于获取微服务节点启动时自身业务信息,并推送至KV存储;
所述分布式服务注册发现集群(2),用于对微服务节点注册,备案该服务可用节点;
所述分布式KV存储集群(3),用于进行KV服务并更新对应的key-value;
所述PG网关(4),用于接收外部请求流量,对请求路由匹配到的配置插件进行预处理、分发透传请求、合并请求结果,起流量分发与预处理的作用,启动时watch分布式kv集群是用于动态化更新配置,实现免重启更新的能力;
所述PG网关(4),还包括以下步骤:
预先进行节点启动,并向所述分布式KV存储集群(3)获取服务注册配置信息并建立watch连接实现服务路由配置信息被动更新;
获取服务节点并向所述分布式服务注册发现集群(2)更新服务可用节点建立watch连接;
更新路由规则并进行执行;
所述分布式KV存储集群(3)更新对应的key-value并广播watch客户端。
2.根据权利要求1所述的插件式动态注册分布式微服务网关系统,其特征在于,还包括微服务集群,用于微服务节点启动并构建服务注册信息。
CN202011552138.4A 2020-12-24 2020-12-24 一种插件式动态注册分布式微服务网关系统 Active CN112738184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011552138.4A CN112738184B (zh) 2020-12-24 2020-12-24 一种插件式动态注册分布式微服务网关系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011552138.4A CN112738184B (zh) 2020-12-24 2020-12-24 一种插件式动态注册分布式微服务网关系统

Publications (2)

Publication Number Publication Date
CN112738184A CN112738184A (zh) 2021-04-30
CN112738184B true CN112738184B (zh) 2022-11-18

Family

ID=75615450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011552138.4A Active CN112738184B (zh) 2020-12-24 2020-12-24 一种插件式动态注册分布式微服务网关系统

Country Status (1)

Country Link
CN (1) CN112738184B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873005B (zh) * 2021-08-20 2023-12-19 浙江中控技术股份有限公司 一种微服务集群的节点选主方法、系统、设备及介质
CN113726566B (zh) * 2021-08-25 2024-03-26 杭州数政科技有限公司 一种服务网关装置
CN114827277B (zh) * 2022-05-06 2023-12-01 北京思特奇信息技术股份有限公司 基于多机房容器部署的微服务系统及方法
CN115037617A (zh) * 2022-05-16 2022-09-09 中国农业银行股份有限公司 一种dubbo服务治理的优化方法及装置
CN115103008B (zh) * 2022-06-13 2024-03-08 北京奇艺世纪科技有限公司 一种服务请求转发系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390766A (zh) * 2017-10-25 2018-08-10 国云科技股份有限公司 一种适用于微服务的服务注册与发现方法
CN110740187A (zh) * 2019-10-25 2020-01-31 家乡互动(厦门)网络科技有限公司 一种微服务架构的实现方法
CN111314141A (zh) * 2020-02-21 2020-06-19 腾讯云计算(北京)有限责任公司 路由更新方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109314704B (zh) * 2016-09-14 2021-07-09 甲骨文国际公司 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能
CN109618002B (zh) * 2019-01-11 2022-07-05 武汉斗鱼鱼乐网络科技有限公司 一种微服务网关优化方法、装置及存储介质
US10938923B2 (en) * 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces
CN110149396B (zh) * 2019-05-20 2022-03-29 华南理工大学 一种基于微服务架构的物联网平台构建方法
CN110554856A (zh) * 2019-09-06 2019-12-10 航天科工广信智能技术有限公司 一种微服务治理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390766A (zh) * 2017-10-25 2018-08-10 国云科技股份有限公司 一种适用于微服务的服务注册与发现方法
CN110740187A (zh) * 2019-10-25 2020-01-31 家乡互动(厦门)网络科技有限公司 一种微服务架构的实现方法
CN111314141A (zh) * 2020-02-21 2020-06-19 腾讯云计算(北京)有限责任公司 路由更新方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
恒丰银行分布式核心系统-API网关技术原型落地实践;赵毅等;《中国金融电脑》;20170407(第04期);全文 *

Also Published As

Publication number Publication date
CN112738184A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN112738184B (zh) 一种插件式动态注册分布式微服务网关系统
EP3886399A1 (en) Method for invoking server and proxy server
US7987266B2 (en) Failover in proxy server networks
RU2436148C2 (ru) Адаптивный шлюз для переключения транзакций и данных на ненадежных сетях, используя основанные на контексте правила
CN104333512B (zh) 一种分布式内存数据库访问系统及方法
US8069233B2 (en) Switch management system and method
JP4588704B2 (ja) 自己管理仲介情報フロー
US8719780B2 (en) Application server with a protocol-neutral programming model for developing telecommunications-based applications
CN102624881B (zh) 一种面向移动设备的服务缓存系统架构及开发方法
US20080250097A1 (en) Method and system for extending the services provided by an enterprise service bus
CN101729491B (zh) 一种增强基于脚本业务的应用可靠性的方法、装置和系统
US9569753B2 (en) Hierarchical publish/subscribe system performed by multiple central relays
US10069941B2 (en) Scalable event-based notifications
CN109451014B (zh) 一种WebService代理系统及其透明代理方法
US20130227568A1 (en) Systems and methods involving virtual machine host isolation over a network
CN112583895B (zh) Tcp通信方法、系统及装置
CN108989420A (zh) 注册服务的方法及系统、调用服务的方法及系统
CN116204239A (zh) 业务处理方法、装置和计算机可读存储介质
US20080059620A1 (en) Method and apparatus for persisting SNMP MIB integer indexes across multiple network elements
CN108681588A (zh) 一种接口访问实时统计方法及系统
CN116132530A (zh) 一种基于Netty框架应用Raft算法实现MQTT Broker服务器的方法
CN113973135A (zh) 数据缓存处理方法、装置、缓存网格平台和存储介质
CN111464520B (zh) 一种数据处理方法、装置、存储介质及电子设备
EP4145795A1 (en) Runtime extensible application programming interface server
CN117033033B (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