CN112134722A - 一种动态路由的方法和系统 - Google Patents
一种动态路由的方法和系统 Download PDFInfo
- Publication number
- CN112134722A CN112134722A CN202010832473.3A CN202010832473A CN112134722A CN 112134722 A CN112134722 A CN 112134722A CN 202010832473 A CN202010832473 A CN 202010832473A CN 112134722 A CN112134722 A CN 112134722A
- Authority
- CN
- China
- Prior art keywords
- configuration parameters
- server
- configuration
- parameter
- dynamic
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000003068 static effect Effects 0.000 claims abstract description 15
- 238000011144 upstream manufacturing Methods 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 5
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000004044 response Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种动态路由的方法和系统,属于计算机技术领域;所述方法包括:获取服务器的配置参数;在服务器的内存设置动态参数文件;将配置参数保存在静态配置文件中,并将配置参数同步到所述服务器的动态参数文件中;通过重载所述动态参数文件,更新服务器的配置参数。本发明通过重载内存的方式重载动态参数文件,以动态更新配置参数,使配置规则实时生效,以提高访问体验和服务器的响应速度,防止服务中断;通过该双写的机制保存配置文件,内存的读写速度快,动态参数文件在断电时易丢失;服务器重启时,从静态配置文件中读取配置参数,并写入动态配置文件,利于提高适用性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种动态路由的方法和系统。
背景技术
访问端与网站的交互,网站前端与代理服务器以及与后端的服务器(简称服务器)的交互都涉及到对请求进行路由,访问端向代理服务器发送请求,代理服务器通过路由的方式,将请求转发给后端的服务器;随着技术的逐渐发展,代理服务器还可以为后端的多台服务器提供负载均衡或为后端的服务器提供缓冲服务,常用的服务器有:Nginx服务器、Apache服务器等。路由是指从一个接口上收到数据包,进行定向转发到另一个接口的过程,在本发明中,路由指将配置参数或访问请求转发到服务器的过程。
现有技术中,代理服务器通过路由的方式向服务器发送配置参数,服务器接收到配置参数时,以静态配置文件的方式进行保存,无法实时生效,需要重启服务器后生效,在重启服务器时会出现服务中断,访问体验较低。
发明内容
针对现有技术存在的上述技术问题,本发明提供一种动态路由的方法和系统,使配置参数动态更新。
本发明公开了一种动态路由的方法,所述方法包括:获取服务器的配置参数;在服务器的内存设置动态参数文件;将所述配置参数保存在静态配置文件中,并将所述配置参数发送到所述服务器的动态参数文件中;通过重载所述动态参数文件,更新服务器的配置参数。
优选的,将所述配置参数发送到所述服务器的动态参数文件的方法包括:将所述配置参数同步到所述客户端上;所述服务器监听所述客户端上的配置参数变化;判断客户端对应的配置参数发生变化时,更新所述动态参数文件。
优选的,所述客户端包括Zookeeper客户端,将所述配置参数同步到Zookeeper客户端上;所述服务器监听Zookeeper客户端上的配置参数。
优选的,本发明的方法还包括通过访问URL获取配置参数的方法:接收URL请求;解析所述URL,获取第一参数;根据所述第一参数获取配置参数。
优选的,本发明的方法还包括通过基数树获取配置参数的方法:根据第一参数检索到基数树相应节点;获取所述节点指向的配置参数及其参数值。
优选的,本发明的方法还包括基于ID将配置参数转发到服务器的方法:基于ID预设上游规则,所述上游规则包括转发服务器的地址;所述配置参数包括ID,用所述ID匹配上游规则;将所述配置参数转发到所述服务器。
优选的,所述上游规则还包括负载均衡的参数,将所述配置参数和所述负载均衡的参数转发所述服务器;所述服务器通过重载所述动态参数文件,更新负载均衡的配置参数。
优选的,所述配置参数包括用户名、ID和请求地址,所述上游规则包括负载均衡的配置参数和服务器节点地址。
本发明还提供一种动态路由的系统,包括获取模块、内存管理模块、同步模块和重载模块;所述获取模块用于获取路由配置参数;所述内存管理模块用于在服务器的内存设置动态参数文件;所述同步模块用于将配置参数保存在静态配置文件中,同时将所述配置参数同步到所述动态参数文件中;所述重载模块通过重载所述动态参数文件,更新配置参数。
优选的,本发明的系统还包括路由配置参数管理模块和访问信息解析模块,所述同步模块包括配置监听模块和客户端模块,所述访问信息解析模块用于解析访问端的URL,获取第一参数;所述路由配置参数管理模块用于管理所述第一参数和配置参数;所述获取模块根据所述第一参数和路由配置参数管理模块中的信息获取配置参数;所述客户端模块用于保存配置参数;所述监听模块用于监听所述客户端模块保存的配置参数,并将修改的配置参数更新到动态参数文件内。
与现有技术相比,本发明的有益效果为:
通过重载内存的方式重载动态参数文件,以动态更新配置参数,使配置规则实时生效,以提高访问体验和服务器的响应速度,防止服务中断;通过双写机制保存配置文件,内存的读写速度快,动态参数文件在断电时易丢失;服务器重启时,从静态配置文件中读取配置参数,并写入动态配置文件,利于提高适用性。
附图说明
图1是本发明的动态路由的方法流程图;
图2是通过客户端将所述参数同步到动态参数文件的方法流程图;
图3是通过Zookeeper客户端动态路由的逻辑框图;
图4是通过URL获取配置参数的方法流程图;
图5是通过基数树获取配置参数的方法流程图;
图6是实施例2中基数树的结构示意图;
图7是基于ID将配置参数转发到服务器的方法流程图;
图8是本发明的动态路由系统的逻辑框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
一种动态路由的方法,如图1所示,所述方法包括:
步骤101:获取服务器的配置参数。可以根据访问端的访问请求生成配置参数,也可以是管理员更设置配置参数,如负载均衡的配置参数。
步骤102:在服务器的内存设置动态参数文件。服务器内存的运行速度快,在一个具体实施例中,在服务器中建立VM缓存,在VM缓存中设置动态参数文件,也可以为服务器建立分布式缓存器,在分布式缓存器中设置动态参数文件。
步骤103:将所述配置参数保存在静态配置文件中,并将所述配置参数同步到所述服务器的动态参数文件中。通过双写机制保存配置文件,内存的读写速度快,而其中的动态参数文件在断电时易丢失;服务器重启时,从静态配置文件中读取配置参数,并写入动态配置文件,利于提高适用性。
步骤104:通过重载所述动态参数文件,更新服务器的配置。可以通过重载内存的方式重载动态参数文件,以动态更新服务器的配置,使配置规则实时生效,以提高访问体验和服务器的响应速度,防止服务中断。
在一个具体实施例中,采用lua_shared_dict指令创建动态配置文件:
lua_code_cache on;
lua_shared_dict plugin-limit-req 30m;
lua_shared_dict plugin-limit-count 30m;
lua_shared_dict plugin-limit-conn 30m;
lua_shared_dict prometheus-metrics 30m;
lua_shared_dict upstream-healthcheck 30m;
lua_shared_dict worker-events 30m;
lua_shared_dict lrucache-lock-stream 10m;
lua_shared_dict lrucache-lock 10m;
lua_shared_dict introspection 30m;
lua_shared_dict discovery 3m;
lua_shared_dict jwks 3m.
实施例1
如图2所示,本实施例提供通过客户端将所述配置参数同步到所述服务器的动态参数文件的方法包括:
步骤201:将所述配置参数同步到客户端上。
步骤202:所述服务器监听所述客户端上的配置参数变化。
步骤203:所述服务器判断客户端相应的配置参数发生变化时,更新动态参数文件。如服务器A监听服务器A的配置参数变化时,更新服务器A的动态参数文件。
将配置参数同步到所述客户端上,利于对配置参数的集中管理,提高服务器集群的管理效率,减轻代理服务器的压力。其中,配置参数包括服务器配置参数和路由规则的路由参数,如指向服务器的路由参数,在路由或转发时,将服务器的配置参数发送到路由参数所指向的服务器。
其中,所述客户端可以是Zookeeper客户端,通过Zookeeper客户端监听配置参数的方法包括:将所述配置参数同步到Zookeeper客户端上;所述服务器监听Zookeeper客户端上的配置参数。不仅于此,也可以是etcd客户端或redis客户端中,其中配置参数以key的形式保存,参数值以value的形式保存。
在一个具体实施例中,如图3所示,管理员通过配置界面修改配置服务的配置参数,通过双写机制,将配置参数同时保存在静态配置文件和Zookeeper客户端中,部署在服务器中的agent监听Zookeeper客户端中参数的变化,通过对比更新的方式,更新VM缓存的动态配置文件。
Zookeeper客户端将复杂易错的服务进行封装,以提供简单易用的接口或性能高效、功能稳定的系统,利于提高服务器集群配置参数的一致性。Zookeeper客户端上保存集群服务器的配置参数,可以在所述配置参数中设置目标服务器的地址或名称,通过地址或名称监听相应的配置参数。
实施例2
如图4所示,本实施例包括通过URL获取配置参数的方法:
步骤401:接收URL请求。例如,访问端通过URL向代理服务器发送访问请求,如http://www.a.com/user/insert?uid=001。
步骤402:解析所述URL,获取第一参数。例如,第一参数包括:第一部分,访问网址:http://www.a.com;第二部分:user;第三部分:insert和第四部分:uid=001。
步骤403:根据所述第一参数获取配置参数。如根据user的信息获取用户名的参数,根据uid获取服务器ID参数,如根据uid=1获取服务器ID为1的参数。URL传递的第一参数较为简略,可以根据第一参数获取完整的可执行的配置参数。
其中,URL(Uniform Resource Locator)指统一资源定位符,为一个给定的独特资源在Web上的地址。
如图5所示,本发明的方法还包括通过基数树(Radix Tree)获取配置参数的方法:
步骤501:根据第一参数检索到所述基数树相应节点。
步骤502:获取所述节点指向的配置参数及其参数值。通常,节点的指针指向配置参数,如uid=1,经过基数树匹配到地址为10.0.0.1的服务器,而uid=2,经基数树匹配到地址为10.0.0.2的服务器。
可以根据配置参数及其参数值生成配置参数的代码,在一个具体实施例中,基于Nginx和Lua语言生成代码。
静态配置文件中配置繁杂,尤其是达到一定数量级后,静态配置文件中的配置变得难以维护。通过基数树的方法管理静态配置参数,利于检索和添加配置参数。
构建基数树时,可以基于第一参数构建根节点和子节点,建立根节点和子节点的关系,同时根据第一参数的逻辑关系在子节点下建立下一级子节点。子节点通过指针指向配置参数。
如图6所示,第一参数:/u的节点比特位为:1110101;/u/add的节点比特位为:111010101;/u/up的节点比特位为:111010110;/u/del的节点比特位为:111010111。/u/add、/u/up和/u/del为/u的子节点。
实施例3
如图7,本实施例提供基于ID将配置参数转发到服务器的方法:
步骤701:基于ID预设上游规则,所述上游规则包括转发服务器的地址。
步骤702:所述配置参数包括ID,用所述ID匹配上游规则。
步骤703:将所述配置参数转发到所述服务器。
其中,所述上游规则还可以包括负载均衡的参数,将所述配置参数和负载均衡的参数转发所述服务器;所述服务器通过重载所述动态参数文件,更新负载均衡的配置参数。所述ID可以是用户ID,从而按用户ID分组进行动态负载均衡。负载均衡的方法可以是轮询法、随机法、最小连接法、源地址哈希法、加权轮询法或cookie粘滞法。
在一个具体实施例中,实现代码如下:
其中,配置参数包括用户名、ID和请求地址,所述上游规则包括负载均衡的参数和服务器节点地址,其中ID可以是用户ID。
本发明还提供一种动态路由的系统,如图8所示,包括获取模块1、内存管理模块2、同步模块3和重载模块4;获取模块1用于获取路由配置参数,配置参数可以由管理员设置,也可以根据访问端的访问URL获取;
内存管理模块2用于在服务器的内存设置动态参数文件12;
同步模块3用于将配置参数保存在静态配置文件11中,并将所述配置参数发送到动态参数文件12中;
重载模块4通过重载动态参数文件12,更新配置参数。在内存中设置动态参数文件12,修改配置参数时,通过重载动态参数文件12,动态更新配置参数,使配置规则实时生效,以提高访问体验和服务器的响应速度,防止服务中断。
本发明的系统还可以包括路由配置参数管理模块7和访问信息解析模块8,同步模块3包括配置监听模块5、客户端模块6、
访问信息解析模块8用于解析访问端的URL,获取第一参数;
路由配置参数管理模块7用于第一参数和配置参数的管理,可以通过基数树的方法进行管理,获取模块1根据第一参数和路由配置参数管理模块7中的信息获取配置参数;
客户端模块6用于保存配置参数;
监听模块5用于监听客户端模块6保存的配置参数,并将修改的配置参数更新到动态参数文件12内。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种动态路由的方法,其特征在于,所述方法包括:
获取服务器的配置参数;
在服务器的内存设置动态参数文件;
将所述配置参数保存在静态配置文件中,并将所述配置参数同步到所述服务器的动态参数文件中;
通过重载所述动态参数文件,更新服务器的配置。
2.根据权利要求1所述的动态路由的方法,其特征在于,将所述配置参数同步到所述服务器的动态参数文件的方法包括:
将所述配置参数同步到所述客户端上;
所述服务器监听所述客户端上的配置参数变化;
判断客户端对应的配置参数发生变化时,更新所述动态参数文件。
3.根据权利要求2所述的动态路由的方法,其特征在于,所述客户端包括Zookeeper客户端,
将所述配置参数同步到Zookeeper客户端上;
所述服务器监听Zookeeper客户端上的配置参数。
4.根据权利要求1-3任一项所述的动态路由的方法,其特征在于,还包括通过访问URL获取配置参数的方法:
接收URL请求;
解析所述URL,获取第一参数;
根据所述第一参数获取配置参数。
5.根据权利要求4所述的动态路由的方法,其特征在于,还包括通过基数树获取配置参数的方法:
根据第一参数检索到基数树相应节点;
获取所述节点指向的配置参数及其参数值。
6.根据权利要求5所述的动态路由的方法,其特征在于,还包括基于ID将配置参数转发到服务器的方法:
基于ID预设上游规则,所述上游规则包括转发服务器的地址;
所述配置参数包括ID,用所述ID匹配上游规则;
将所述配置参数转发到所述服务器。
7.根据权利要求6所述的动态路由的方法,其特征在于,所述上游规则还包括负载均衡的参数,将所述配置参数和所述负载均衡的参数转发所述服务器;
所述服务器通过重载所述动态参数文件,更新负载均衡的配置参数。
8.根据权利要求6所述的动态路由的方法,其特征在于,所述配置参数包括用户名、ID和请求地址,所述上游规则包括负载均衡的配置参数和服务器节点地址。
9.一种动态路由的系统,其特征在于,包括获取模块、内存管理模块、同步模块和重载模块;
所述获取模块用于获取路由配置参数;
所述内存管理模块用于在服务器的内存设置动态参数文件;
所述同步模块用于将配置参数保存在静态配置文件中,同时将所述配置参数同步到所述动态参数文件中;
所述重载模块通过重载所述动态参数文件,更新配置参数。
10.根据权利要求9所述的动态路由的系统,其特征在于,还包括路由配置参数管理模块和访问信息解析模块,所述同步模块包括配置监听模块和客户端模块,
所述访问信息解析模块用于解析访问端的URL,获取第一参数;
所述路由配置参数管理模块用于管理所述第一参数和配置参数;
所述获取模块根据所述第一参数和路由配置参数管理模块中的信息获取配置参数;
所述客户端模块用于保存配置参数;
所述监听模块用于监听所述客户端模块保存的配置参数,并将修改的配置参数更新到动态参数文件内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010832473.3A CN112134722A (zh) | 2020-08-18 | 2020-08-18 | 一种动态路由的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010832473.3A CN112134722A (zh) | 2020-08-18 | 2020-08-18 | 一种动态路由的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112134722A true CN112134722A (zh) | 2020-12-25 |
Family
ID=73850355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010832473.3A Pending CN112134722A (zh) | 2020-08-18 | 2020-08-18 | 一种动态路由的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134722A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948314A (zh) * | 2017-12-21 | 2018-04-20 | 泰康保险集团股份有限公司 | 基于规则文件的业务处理方法、装置及服务器 |
CN108965381A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 |
CN110581890A (zh) * | 2019-09-10 | 2019-12-17 | 中国建设银行股份有限公司 | 一种服务请求的路由方法和装置 |
-
2020
- 2020-08-18 CN CN202010832473.3A patent/CN112134722A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948314A (zh) * | 2017-12-21 | 2018-04-20 | 泰康保险集团股份有限公司 | 基于规则文件的业务处理方法、装置及服务器 |
CN108965381A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 |
CN110581890A (zh) * | 2019-09-10 | 2019-12-17 | 中国建设银行股份有限公司 | 一种服务请求的路由方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914457B2 (en) | Caching of nodes in cache cluster | |
CN107231402B (zh) | Http请求处理方法、装置及系统 | |
US8452925B2 (en) | System, method and computer program product for automatically updating content in a cache | |
CN104580226A (zh) | 一种共享会话数据的系统和方法 | |
JP2018506756A (ja) | ウェブサイト・アクセス方法、装置、およびウェブサイト・システム | |
US10645192B2 (en) | Identifying content files in a cache using a response-based cache index | |
US8041893B1 (en) | System and method for managing large filesystem-based caches | |
US20110067036A1 (en) | Method for Determining Relationship Data Associated with Application Programs | |
CN111817984B (zh) | 消息发送方法、装置、设备及存储介质 | |
CN112347165B (zh) | 日志处理方法、装置及服务器和计算机可读存储介质 | |
US20170060922A1 (en) | Method and device for data search | |
CN111510330A (zh) | 接口管理装置、方法及存储介质 | |
CN112583760B (zh) | 一种对象存储的访问方法、装置、设备和计算机存储介质 | |
CN106713460B (zh) | 一种flash应用的版本控制方法和系统 | |
US10031859B2 (en) | Pulse counters | |
US20210342334A1 (en) | Method, device, and computer program product for data management | |
CN115242882B (zh) | 一种基于传输层路由访问k8s容器环境的方法及装置 | |
CN112134722A (zh) | 一种动态路由的方法和系统 | |
CN115617417A (zh) | 一种微前端架构子应用管理方法、装置、设备、存储介质 | |
CN114928638A (zh) | 一种网络行为的解析方法、装置及监控设备 | |
US20210157769A1 (en) | Distributed storage system for storing context data | |
CN117453380B (zh) | 集群的容器组调度方法、系统以及计算机设备 | |
US20140359062A1 (en) | Data transferring apparatus, data transferring system and non-transitory computer readable medium | |
CN112866355B (zh) | 用于服务器故障转移和负荷平衡的系统和方法 | |
Chen et al. | Electronic evidence service research in cloud computing environment |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201225 |