一种插件式动态注册分布式微服务网关系统的制作方法

文档序号:24887301发布日期:2021-04-30 13:10阅读:114来源:国知局
一种插件式动态注册分布式微服务网关系统的制作方法

本发明涉及计算机互联网应用技术架构技术领域,具体来说,涉及一种插件式动态注册分布式微服务网关系统。



背景技术:

目前,随着互联网应用场景的丰富,后端服务器程序的实现与管理难度日益增长,传统企业的it软件大多是各种功能的堆砌形成单体架构软件程序,程序的复杂性随着业务需求的增加而增加,单一功能的技术缺陷可能导致整个后端服务的不可用,大大提升运维难度、问题排查与修复时间以及程序的可理解度,降低服务整体可用性导致生产效率受到了极大影响。基于上述,单体程序会带来主机扩展性差、可靠性不高、运维成本高的缺点

微服务架构思想的出现一定程度解决了上述一体式程序所面临的问题。微服务模块功能单一,职责边界清晰,低耦合高内聚。但多组微服务间的通信、治理、统一对外能力输出成为新的研究课题。

目前常规的互联网后端架构,业务客户端通过互联网请求到达后台,通过防火墙过滤非法请求后转发到lvs(linuxvirtualserver,linux虚拟服务器)端,lvs将请求通过负载均衡算法均匀的转发到后端网关服务器,网关侧通过预先配置好的转发规则将流量转发到后端服务。常见的后端网关服务组件有nginx、apache、tengine、kong、openresty等,以上网关均提供静态配置文件方式对请求路由规则进行管理,kong、openresty等新型网关在nginx的基础上增加了插件模式,通过路由、域名、用户等规则匹配方式进行插件的适用,但该方式在配置后需要重启或从载才能生效,在实际应用中存在一定安全隐患和不足。网关集群在配置更新时批量重载会对运行中的服务有闪断影响,异步批量重载可能将请求中的流量打到未开始重载的服务器上,出现流量负载不均衡的情况。kong、openresty提供的插件服务在实际业务应用中无法与业务系统进行联动,实用意义不大。而且基于lua语言的插件开发方式对服务使用者形成一定的开发门槛、增加开发学习成本。

因此,亟需一种插件式动态注册分布式微服务网关系统。

检索中国发明专利cn108512748a,公开了一种微服务网关的实现方法,经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是根据本发明实施例的一种插件式动态注册分布式微服务网关系统的原理框图;

图2是根据本发明实施例的一种插件式动态注册分布式微服务网关系统的流程示意图一;

图3是根据本发明实施例的一种插件式动态注册分布式微服务网关系统的流程示意图二;

图4是根据本发明实施例的一种插件式动态注册分布式微服务网关系统的流程示意图三。

图中:

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等基本能力;本方案在规则匹配策略上支持多种匹配规则:域名匹配、urlpath匹配、请求方法匹配、url前缀匹配、请求头信息匹配,匹配规则可组合使用;根据微服务注册中心的注册信息,对匹配到的api定义的插件进行匹配遴选,为请求预处理做准备;请求预处理是将请求前的插件预先处理,如插件执行中不满足预期条件则直接返回中断后续流程。聚合请求头信息、参数为业务请求环节做准备;业务请求环节可结合服务注册/发现组件获取最新可用的微服务节点,在业务请求中支持多微服务节点负载均衡请求;微服务请求结束后按顺序处理请求后插件,并将响应信息聚合后回写到业务请求侧。

综上所述,借助于本发明的上述技术方案,可实现如下效果:

高可用:本方案支持分布式部署,解决网络架构中的单点问题,结合服务注册组件的健康检查自动过滤不可用节点,实现服务高可用。

配置更改免重启:基于watch机制,微服务注册中心将更新后的配置推送到pg网关,pg网关收到更新后的服务配置实时生效,在新请求进入时即刻生效。

动态服务发现:下游微服务节点的缩减扩充发生变化时,微服务方无需重新注册,服务注册与发现组件主动维护服务可用节点。pg网关同时支持静态ip、url方式请求。

多种插件形式:支持native、lua、url多种插件,lua插件发布、销毁均支持动态发现,无需重启;url类插件支持多种协议,覆盖更多动态化插件场景。

可跟踪性:基于trace技术,pg网关接收到的每一条请求,每一个流程均可日志化归档,便于业务查询,定位排障。

高性能:使用golang语言开发,相比其他语言的api网关具备更高的处理性能。

可感知:多方位多维度监控埋点,对网关服务运行状态可视化感知。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1