一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于微服务网关的反向代理方法、装置、设备及存储介质与流程

2022-02-22 02:46:03 来源:中国专利 TAG:


1.本发明涉及反向代理领域,尤其涉及一种基于微服务网关的反向代理方法、装置、设备及存储介质。


背景技术:

2.微服务架构是soa架构样式的一种变体,将一个大型的应用程序拆分为一组松散耦合的可独立部署的服务,每个服务使用自己的结构框架、配置自己的数据库、使用自己的编程语言等。
3.在现有的技术中,通常使用如nginx的web服务器作为客户端与微服务间的中间服务以实现反向代理,避免服务器直接暴露给客户端并缓解业务压力,同时可以通过附加程序动态修改nginx配置达到动态管理集群下游服务的目的。但应用这种方法,将核心的代理部分交由nginx控制,若要在代理的基础上增加其他附加功能,需要开发nginx扩展,重新部署成本较高,且动态修改nginx配置存在服务重启后配置丢失或与数据库内容不一致的问题。


技术实现要素:

4.本发明的主要目的在于提供一种基于微服务网关的反向代理方法、装置、设备及存储介质,旨在解决反向代理服务器扩展困难且服务重启后动态修改的配置丢失的问题。
5.本发明第一方面提供了一种基于微服务网关的反向代理方法,包括:
6.监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
7.根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
8.将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
9.将所述访问处理结果返回至所述客户端。
10.可选的,在本发明第一方面的第一种实现方式中,所述监听客户端发起的访问请求并进行解析,得到访问参数与访问地址包括:
11.监听客户端发起的访问请求;
12.对所述访问请求进行报文解析,得到访问参数与访问地址,所述访问参数包括请求头部及请求参数。
13.可选的,在本发明第一方面的第二种实现方式中,在所述监听客户端发起的访问请求并进行解析,得到访问参数与访问地址之后,还包括:
14.根据所述请求头部与所述请求参数,判断所述访问请求是否合法;
15.若所述访问请求非法,则拒绝所述访问请求,否则执行所述根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务的步骤。
16.可选的,在本发明第一方面的第三种实现方式中,采用分布式键值对存储系统存
储所述微服务网关的网关配置,所述分布式键值对存储系统以访问地址为键,以访问地址指向的微服务为值。
17.可选的,在本发明第一方面的第四种实现方式中,所述基于微服务网关的反向代理方法还包括:
18.当存在新微服务注册时,生成所述新微服务对应的键值对并添加至所述分布式键值对存储系统的主存储服务器;
19.采用raft协议,将所述主存储服务器中的新增键值对同步更新至其他从存储服务器,以同步更新微服务网关的网关配置。
20.可选的,在本发明第一方面的第五种实现方式中,所述采用raft协议,将所述主存储服务器中的新增键值对同步更新至其他从存储服务器,以同步更新微服务网关的网关配置包括:
21.当所述主存储服务器中存在新增键值对时,将所述新增键值对的对应数据库操作传输至所述主存储服务器的一致性模块;
22.通过所述主存储服务器的一致性模块将所述数据库操作写入所述主存储服务器的日志中;
23.采用raft协议,通过所述主存储服务器的一致性模块将所述主存储服务器的数据库操作以相同顺序写入其他从存储服务器的日志中。
24.可选的,在本发明第一方面的第六种实现方式中,所述微服务网关包括多个中间件,所述中间件用于实现所述微服务网关的扩展功能。
25.本发明第二方面提供了一种基于微服务网关的反向代理装置,所述基于微服务网关的反向代理装置包括:
26.监听模块,用于监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
27.查询模块,用于根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
28.转发模块,用于将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
29.返回模块,用于将所述访问处理结果返回至所述客户端。
30.可选的,在本发明第二方面的第一种实现方式中,所述监听模块具体用于:
31.监听客户端发起的访问请求;
32.对所述访问请求进行报文解析,得到访问参数与访问地址,所述访问参数包括请求头部及请求参数。
33.可选的,在本发明第二方面的第二种实现方式中,所述基于微服务网关的反向代理装置还包括:
34.判断模块:根据所述请求头部与所述请求参数,判断所述访问请求是否合法;若所述访问请求非法,则拒绝所述访问请求,否则执行所述根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务的步骤。
35.可选的,在本发明第二方面的第三种实现方式中,采用分布式键值对存储系统存储所述微服务网关的网关配置,所述分布式键值对存储系统以访问地址为键,以访问地址
指向的微服务为值。
36.可选的,在本发明第二方面的第四种实现方式中,所述基于微服务网关的反向代理装置还包括更新模块:
37.添加单元:当存在新微服务注册时,生成所述新微服务对应的键值对并添加至所述分布式键值对存储系统的主存储服务器;
38.同步单元:采用raft协议,将所述主存储服务器中的新增键值对同步更新至其他从存储服务器,以同步更新微服务网关的网关配置。
39.可选的,在本发明第二方面的第五种实现方式中,所述同步单元包括:
40.当所述主存储服务器中存在新增键值对时,将所述新增键值对的对应数据库操作传输至所述主存储服务器的一致性模块;
41.通过所述主存储服务器的一致性模块将所述数据库操作写入所述主存储服务器的日志中;
42.采用raft协议,通过所述主存储服务器的一致性模块将所述主存储服务器的数据库操作以相同顺序写入其他从存储服务器的日志中。
43.可选的,在本发明第二方面的第六种实现方式中,所述基于微服务网关的反向代理装置还包括:
44.中间件模块:所述微服务网关包括多个中间件,所述中间件用于实现所述微服务网关的扩展功能。
45.本发明第三方面提供了一种电子设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子设备执行上述的基于微服务网关的反向代理方法。
46.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于微服务网关的反向代理方法。
47.发明提供的技术方案中,当有新的客户端请求时,解析请求报文获得访问地址与访问参数,根据访问地址查询数据库获取网关配置后将访问参数转发至相应的微服务进行处理,获得返回数据后转发回客户端。本发明无需依赖第三方的代理服务器,可以在原代理程序的基础上进行修改,提高了微服务网关的扩展能力,降低了扩展开发的成本。
附图说明
48.图1为本发明实施例中基于微服务网关的反向代理方法的第一个实施例示意图;
49.图2为本发明实施例中基于微服务网关的反向代理方法的第二个实施例示意图;
50.图3为本发明实施例中基于微服务网关的反向代理装置的第一个实施例示意图;
51.图4为本发明实施例中基于微服务网关的反向代理装置的第二个实施例示意图;
52.图5为本发明实施例中电子设备的一个实施例示意图。
具体实施方式
53.本发明实施例提供了一种基于微服务网关的反向代理方法、装置、设备及存储介质,本发明实施例使用中间件模式,通过增加中间件即可扩展微服务网关的功能,实现一个
基于文件的数据库,并通过raft协议同步配置更改日志,实现微服务网关的高可用性,确保服务配置的一致性。
54.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
55.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中微服务网关实现方法的第一个实施例包括:
56.101、监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
57.可以理解的是,本发明的执行主体可以为基于微服务网关的反向代理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
58.本实施例中,微服务是soa(service-oriented architecture,面向服务的架构)的一种变体,将应用程序构造为一组松散耦合的可独立部署的服务,每个服务使用自己的结构框架、数据库、编程语言等。
59.本实施例中,客户端可以是外部的用户端设备,也可以是内部的微服务器。
60.本实施例中,微服务网关在启动时注册到服务注册中心,客户端发送访问请求时直接请求微服务网关,网关实现权限校验、监控、限流、熔断等功能,并完成服务发现与负载均衡,路由转发客户端请求到相应的为服务器。
61.本实施例中,微服务网关的核心部分是反向代理,代理服务器本身是一个web服务器。
62.本实施例中,所述访问请求包括http请求与https请求。
63.可选的,在一实施例中,上述步骤101包括:
64.监听客户端发起的访问请求;
65.对所述访问请求进行报文解析,得到访问参数与访问地址,所述访问参数包括请求头部及请求参数。
66.本实施例中,所述基于微服务网关的反向代理的实现使用设计模式中的中间件模式,可以通过增加中间件来扩展所述基于微服务网关的反向代理方法的功能。
67.本实施例中,所述报文解析即对客户端发送的访问请求的请求报文进行解析。所述请求报文包括请求行、请求头部、空行和请求体四个部分,其中请求行由方法字段、url(uniform resource locator,统一资源定位器)字段和协议版本三部分组成;请求头部包含若干个属性,由“属性名:属性值”组成,请求头部通知服务端有关于客户端请求的信息;最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;请求体将一个页面表单中的组件值通过键值对形式编码成一个格式化串,承载多个请求参数的数据。
68.本实施例中所述请求参数包括url中传递的参数与请求体中传递的参数,使用不
同的请求方法,可传递的参数不同。
69.本实施例中,微服务网关主要包含两类功能:路由,接受客户端的请求并转发到下游的微服务上;过滤,包括但不限于鉴权校验、接口限流、熔断、监控、日志追踪。
70.本实施例中,微服务网关的过滤功能就通过增加中间件来实现。
71.可选的,在一实施例中,通过微服务网关生成一个唯一的id,插入在接口中,记录在日志里,跟踪此次访问请求在整个微服务集群中的流动处理链路,实现日志追踪。
72.可选的,在一实施例中,通过加入熔断器,实现微服务网关的熔断、过载保护。在正常情况下熔断器处于关闭状态,当调用失败次数达到预置阈值时启动熔断机制,打开熔断器;熔断器打开状态时对调用请求返回内部错误,当预置的时钟达到预置数值时,进入半熔断状态;半熔断状态允许定量的服务请求,如果调用请求成功的比例达到预置数值,则关闭熔断器,否则返回至熔断器打开状态。
73.102、根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
74.本实施例中,所述网关配置是一种映射关系,即访问地址与其指向的微服务,使用网关配置可以快速进行服务发现、反向代理,确定应转发至的目标微服务,提供了微服务网关的高可用性。
75.本实施例中,采用分布式键值对存储系统存储所述微服务网关的网关配置,所述分布式键值对存储系统以访问地址为键,以访问地址指向的微服务为值。
76.103、将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
77.本实施例中,一个访问请求报文由请求行、请求头部、空行和数据请求四个部分组成,其中请求头部是请求报文特有的,为服务器提供了一些额外信息,比如服务端可以发送的编码格式、数据压缩格式等。
78.本实施例中,所述访问参数包括请求头部与请求参数,所述请求头部是请求报文中的请求头部,所述请求参数是客户端在使用不同的请求方法时传入的参数。
79.本实施例中,所述访问处理结果为微服务器返回的响应报文,包括状态行、响应头部、空行和响应体四个部分,其中状态行由协议版本、状态码和状态码的描述三部分组成;响应头部向客户端提供一些额外信息,如:发送响应的主体、响应者的功能、一些与响应相关的特殊指令等;最后一个响应头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有响应头部;响应体是微服务器返回给客户端的文本信息。
80.104、将所述访问处理结果返回至所述客户端。
81.本实施例中,反向代理隔离了内部与外部,减少客户端与服务端的耦合,保障了后台微服务的安全性,并且使得服务可以独立发展。
82.本发明提供的技术方案中,当有新的客户端请求时,解析请求报文获得访问地址与访问参数,根据访问地址查询数据库获取网关配置后将访问参数转发至相应的微服务进行处理,获得返回数据后转发回客户端。本发明无需依赖第三方的代理服务器,且核心代理程序采用中间件模式,可以在原代理程序的基础上进行修改,提高了微服务网关的扩展能力,降低了扩展开发的成本。
83.请参阅图2,本发明实施例中基于微服务网关的反向代理方法的第二个实施例包
括:
84.201、当存在新微服务注册时,生成所述新微服务对应的键值对并添加至所述分布式键值对存储系统的主存储服务器;
85.本实施例中,反向代理程序是无状态的,即所述反向代理程序不保存任何客户端请求者的信息,因此需对网关配置部分提供高可用性以减少系统不能提供服务的时间。
86.本实施例中,所有服务都注册到服务注册中心,同时也可以从服务注册中心获取当前可用的服务清单。
87.202、采用raft协议,将所述主存储服务器中的新增键值对同步更新至其他从存储服务器,以同步更新微服务网关的网关配置;
88.可选的,在一实施例中,上述步骤202包括:
89.当所述主存储服务器中存在新增键值对时,将所述新增键值对的对应数据库操作传输至所述主存储服务器的一致性模块;
90.通过所述主存储服务器的一致性模块将所述数据库操作写入所述主存储服务器的日志中;
91.采用raft协议,通过所述主存储服务器的一致性模块将所述主存储服务器的数据库操作以相同顺序写入其他从存储服务器的日志中。
92.203、监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
93.可选的,在一实施例中,在上述步骤203之后还包括:
94.根据所述请求头部与所述请求参数,判断所述访问请求是否合法;
95.若所述访问请求非法,则拒绝所述访问请求,否则执行所述根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务的步骤。
96.204、根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
97.205、将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
98.206、将所述访问处理结果返回至所述客户端。
99.本发明实施例中,当有新的客户端请求时,拒绝非法的访问请求,提高了反向代理的工作效率与安全性。通过一个基于文件的数据库存储微服务网关配置信息,使用raft协议同步配置更改日志,实现数据库内的内容一致性。同时由于代理程序本身是无状态的,本发明实现了微服务网关的高可用性,有效地减少了系统不能提供服务的时间。
100.上面对本发明实施例中基于微服务网关的反向代理方法进行了描述,下面对本发明实施例中基于微服务网关的反向代理装置进行描述,请参阅图3,本发明实施例中基于微服务网关的反向代理装置的第一个实施例包括:
101.监听模块301,用于监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
102.查询模块302,用于根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
103.转发模块303,用于将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
104.返回模块304,用于将所述访问处理结果返回至所述客户端。
105.可选的,在一实施例中,所述监听模块301具体用于:
106.监听客户端发起的访问请求;对所述访问请求进行报文解析,得到访问参数与访问地址,所述访问参数包括请求头部及请求参数。
107.本发明提供的技术方案中,当有新的客户端请求时,拒绝非法的访问请求,解析请求报文获得访问地址与访问参数,根据访问地址查询数据库获取网关配置后将访问参数转发至相应的微服务进行处理,获得返回数据后转发回客户端。本发明无需依赖第三方的代理服务器,可以在原代理程序的基础上进行修改,易于扩展。
108.请参阅图4,本发明实施例中基于微服务网关的反向代理装置的第二个实施例包括:
109.监听模块301,用于监听客户端发起的访问请求并进行解析,得到访问参数与访问地址;
110.查询模块302,用于根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务;
111.转发模块303,用于将所述访问参数转发至所述微服务进行处理,并接收所述微服务返回的访问处理结果;
112.返回模块304,用于将所述访问处理结果返回至所述客户端;
113.判断模块305,用于根据所述请求头部与所述请求参数,判断所述访问请求是否合法;
114.更新模块306,用于当有新的服务注册时,更新网关配置信息;
115.中间件模块307,用于增加、修改、删除中间件。
116.可选的,判断模块305具体用于:
117.若所述访问请求非法,则拒绝所述访问请求,否则执行所述根据所述访问地址,查询微服务网关的网关配置,得到所述访问地址指向的微服务的步骤。
118.可选的,更新模块306包括:
119.添加单元3061,用于当存在新微服务注册时,生成所述新微服务对应的键值对并添加至所述分布式键值对存储系统的主存储服务器;
120.同步单元3062,采用raft协议,将所述主存储服务器中的新增键值对同步更新至其他从存储服务器,以同步更新微服务网关的网关配置。
121.可选的,同步单元3062还可以具体用于:
122.当所述主存储服务器中存在新增键值对时,将所述新增键值对的对应数据库操作传输至所述主存储服务器的一致性模块;通过所述主存储服务器的一致性模块将所述数据库操作写入所述主存储服务器的日志中;采用raft协议,通过所述主存储服务器的一致性模块将所述主存储服务器的数据库操作以相同顺序写入其他从存储服务器的日志中。
123.可选的,中间件模块307具体用于:
124.所述基于微服务网关的反向代理的实现使用设计模式中的中间件模式,可以通过增加中间件来扩展所述基于微服务网关的反向代理方法的功能。
125.本发明实施例中,对访问请求进行预处理,拒绝非法请求,使用数据库与raft协议保存并同步网关配置的更改日志,提高了反向代理的效率,实现了微服务网关的高可用性
的同时保障了动态配置更改的一致性。本发明采用中间件模式增强了微服务网关的扩展能力,降低了扩展成本。
126.上面图3和图4从模块化功能实体的角度对本发明实施例中的基于微服务网关的反向代理装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子设备进行详细描述。
127.图5是本发明实施例提供的一种电子设备的结构示意图,该电子设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在电子设备500上执行存储介质530中的一系列指令操作。
128.电子设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
129.本发明还提供一种电子设备,所述电子设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述电子方法的步骤。
130.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于微服务网关的反向代理方法的步骤。
131.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
132.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
133.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献