CN113452617A - 动态网关路由管理方法、装置及存储介质 - Google Patents
动态网关路由管理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113452617A CN113452617A CN202110708029.5A CN202110708029A CN113452617A CN 113452617 A CN113452617 A CN 113452617A CN 202110708029 A CN202110708029 A CN 202110708029A CN 113452617 A CN113452617 A CN 113452617A
- Authority
- CN
- China
- Prior art keywords
- gateway
- route
- routing
- dynamic
- configuration information
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 158
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000012508 change request Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 4
- 230000007704 transition Effects 0.000 abstract description 4
- 230000008859 change Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 241000700189 Hystrix <Rodentia> Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种动态网关路由管理方法、装置及存储介质,该方法包括:网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息,网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表,并在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。该方法使得网关在没有重启的前提下就能实现路由动态刷新的效果,完成了网关路由动态刷新且能平滑过渡的目标,有效地保障了线上服务的稳定性与可靠性。
Description
技术领域
本申请涉及互联网领域,尤其涉及一种动态网关路由管理方法、装置及存储介质。
背景技术
近年来,随着网关集群规模的逐步扩大,网关间的信息传输越来越来频繁,因此常常要对网关之间的路由规则进行变更。
在相关技术中,当路由规则发生变化时,网关集群必须重启才能更新路由规则。但重启网关集群势必会影响线上业务。
发明内容
本申请提供了一种动态网关路由管理方法、装置及存储介质,以实现网关路由的动态刷新。
第一方面,本申请提供了一种动态网关路由管理方法,包括:
网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息;
网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表;
网关管理服务器在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。
一种可能的实施方式中,网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,包括:网关管理服务器在接收到来自客户端的路由变更请求后,从路由变更请求中获取路由配置信息;网关管理服务器根据路由配置信息生成预发路由配置表;网关管理服务器将预发路由配置表保存在数据库中。
一种可能的实施方式中,网关管理服务器将保存在数据库中的路由配置信息同步至线上路由配置表,包括:网关管理服务器将线上路由配置表的内容替换为预发路由配置表的内容,并将预发路由配置表中的数据更新为已发布状态。
一种可能的实施方式中,网关管理服务器将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由,包括:网关管理服务器向消息队列传递系统发送路由发布事件消息,路由发布事件消息用于指示消息队列传递系统将路由发布事件消息广播给网关集群;网关集群基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新。
一种可能的实施方式中,网关集群包括至少一个网关,网关集群基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新,包括:至少一个网关响应于接收到的路由发布事件消息,根据路由发布事件消息确定对应的消息处理器;根据消息处理器,发起网关路由的刷新事件,刷新事件包括从数据库获取线上路由配置表,进行网关路由的动态刷新。
一种可能的实施方式中,还包括:网关集群在动态刷新网关路由后,返回刷新结果给客户端;客户端在网关路由管理界面上显示刷新结果。
第二方面,本申请提供一种动态网关路由管理装置,应用于网关管理服务器。该动态网关路由管理装置包括:
保存模块,用于在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息;
同步模块,用于在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表;
动态刷新模块,用于在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。
一种可能的实施方式中,保存模块具体用于:在接收到来自客户端的路由变更请求后,从路由变更请求中获取路由配置信息;根据路由配置信息生成预发路由配置表;将预发路由配置表保存在数据库中。
一种可能的实施方式中,同步模块具体用于:将线上路由配置表的内容替换为预发路由配置表的内容,并将预发路由配置表中的数据更新为已发布状态。
一种可能的实施方式中,动态刷新模块具体用于:向消息队列传递系统发送路由发布事件消息,路由发布事件消息用于指示消息队列传递系统将路由发布事件消息广播给网关集群,以使网关集群基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新。
一种可能的实施方式中,网关集群包括至少一个网关,该至少一个网关具体用于:响应于接收到的路由发布事件消息,根据路由发布事件消息确定对应的消息处理器;根据消息处理器,发起网关路由的刷新事件,刷新事件包括从数据库获取线上路由配置表,进行网关路由的动态刷新。
一种可能的实施方式中,网关集群还用于:在动态刷新网关路由后,返回刷新结果给客户端,以使客户端在网关路由管理界面上显示刷新结果。
第三方面,本申请提供一种电子设备,包括:
存储器和处理器;
存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行第一方面的动态网关路由管理方法中客户端或网关管理服务器或网关集群执行的步骤。
第四方面,本申请提供一种动态网关路由管理系统,包括:网关管理服务器和网关集群,其中:
网关管理服务器用于执行如第一方面的动态网关路由管理方法中网关管理服务器执行的步骤;
网关集群用于执行如第一方面的动态网关路由管理方法中网关集群执行的步骤。
一种可能的实施方式中,该动态网关路由管理系统还可以包括:客户端、数据库和消息队列传递系统中的至少一种;其中,
客户端用于执行如第一方面的动态网关路由管理方法中客户端执行的步骤;
数据库用于执行如第一方面的动态网关路由管理方法中数据库执行的步骤;
消息队列传递系统用于执行如第一方面的动态网关路由管理方法中消息队列传递系统执行的步骤。
第五方面,本申请一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现第一方面的动态网关路由管理方法中客户端或网关管理服务器或网关集群执行的步骤。
第六方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面的动态网关路由管理方法中客户端或网关管理服务器或网关集群执行的步骤。
本申请提供一种动态网关路由管理方法、装置及存储介质,其中,网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息,网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表,并在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。通过将路由配置信息保存在数据库中,网关集群通过从数据库中提取路由配置信息,使得网关集群在不重启的情况下,对路由配置信息实现动态刷新,从而有效地保障了线上服务的稳定性与可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的应用场景示意图;
图2为本申请一实施例提供的动态网关路由管理方法的流程图;
图3为本申请另一实施例提供的动态网关路由管理方法的流程图;
图4为本申请一实施例提供的动态网关路由管理方法的信令交互图;
图5为本申请一实施例提供的动态网关路由管理装置的结构示意图;
图6为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请涉及的部分技术术语进行解释说明:
Zuul微服务网关集群:Zuul是Netflix开源的微服务网关,它可以和Eureka、Ribbon、Hystrix等组件配合使用,用于数据的交互。
MySQL数据库:MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
Kafka消息中间件:Kafka是分布式发布-订阅消息系统(主题),对于分布式消息系统主要有两种,一种是主题,一种是队列。Kafka是一个分布式的,可划分的,冗余备份的持久性日志服务。它主要用于处理活跃的流式数据。
目前,当需要对网关集群的路由配置信息进行变更时,往往需要关闭网关集群,关闭网关集群会影响线上业务的传输效率。
基于相关技术存在的问题,本申请的实施例提供了一种动态网关路由管理方法、装置及存储介质,当路由配置信息进行变更后,会将上述路由配置信息同步到数据库中,网关集群从数据库中即可提取到变更的路由配置信息,此过程网关集群不需要重新启动,因此网关流量并没有明显波动,完成了网关集群动态刷新且能平滑过渡的目标,有效地保障了线上服务的稳定性与可靠性。
图1为本申请一实施例提供的应用场景示意图。如图1所示,本应用场景中包括客户端110、网关管理服务器120、数据库130、消息队列140和网关集群150。其中,操作人员通过自己的域账户在客户端110可登录网关管理平台并进行相关的操作。
示例地,操作人员通过在客户端110进行路由配置信息的变更操作,响应于该变更操作,客户端110发送路由变更请求给网关管理服务器120,由网关管理服务器120与数据库130、消息队列140和网关集群150相互交互,执行动态变更网关集群的路由配置信息的多项操作,最后由网关集群150将路由配置信息变更后的结果返回给客户端110,由客户端110显示该结果给操作人员。
需要说明的是,图1仅是本申请实施例提供的一种应用场景的示意图,本申请实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。例如,在图1所示的应用场景中,还可以包括数据存储设备,该数据存储设备相对上述设备可以是外部存储器,也可以是集成在例如客户端110或者网关管理服务器120等设备中的内部存储器。示例地,客户端110既可以是PC,即电脑,也可以是手机或笔记本等终端设备。
接下来,通过具体实施例介绍动态网关路由管理方法。
图2为本申请一实施例提供的动态网关路由管理方法的流程图。如图2所示:
S201、网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息。
本申请实施例中,操作人员通过安装有网关管理平台的客户端(如图1所示的及客户端110)对网关集群的路由配置信息进行操作。示例地,操作人员可以在网关管理平台上对路由配置信息进行查询;同样地,当操作人员需要对网关集群的路由配置信息进行改变时,可以在客户端界面上对其进行变更操作。具体地,上述变更操作可以分为:新增路由配置信息的操作、修改路由配置信息的操作和删除路由配置信息的操作。在操作人员完成对路由配置信息的变更之后,客户端会将路由变更请求发送给网关管理服务器。对应地,网关管理服务器接收到来自客户端的路由变更请求之后,会从路由变更请求中获取变更后的路由配置信息,并将其保存在数据库中。示例地,数据库可以是MySQL数据库。下述的实例中,以MySQL数据库为例进行叙述,但本申请不以此为限制,也就是说本申请提及的数据库还可以是MySQL数据库之外的数据库。
S202、网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表。
示例地,S201中已经叙述了当用户通过客户端对路由配置信息进行变更后,网关管理服务器会将其存储在MySQL数据库中。之后,操作人员还需要通过客户端对变更后的路由配置信息进行再次确认。当确认完毕后,操作人员需要通过客户端再次发送确认发布路由配置信息的请求。对应地,当网关管理服务器接收到该确认发布路由配置信息的请求后,会将之前保存在MySQL数据库中的路由配置信息同步到线上路由配置表。
该步骤执行后,其它的服务器可以在MySQL数据库中的线上路由配置表查询到变更后的路由配置信息,为后续改变网关集群中的路由配置信息提供保障。
S203、网关管理服务器在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。
完成同步之后,线上路由配置表中的路由配置信息已经被更新为变更后的路由配置信息,网关管理服务器需要将变更后的线上路由配置表发送到网关集群中。相应地,网关集群接收到该线上路由配置表后,从中提取变更后的路由配置信息,从而更新网关集群本地的路由配置信息。
本申请实施例中,网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息,网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表,并在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。通过将客户端变更的路由配置信息保存在数据库中,并将在数据库中保存的路由配置信息发送给网关集群,从而实现了动态刷新网关路由的功能,网关集群不需要重新启动,因此网关流量并没有明显波动,完成了网关路由动态刷新且能平滑过渡的目标,有效地保障了线上服务的稳定性与可靠性。
在上述实施例的基础上,一些实施例中,网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,可以进一步包括:网关管理服务器在接收到来自客户端的路由变更请求后,从路由变更请求中获取路由配置信息;网关管理服务器根据路由配置信息生成预发路由配置表,并将预发路由配置表保存在数据库中。
示例地,网关管理服务器从路由变更请求中获取路由配置信息之后,需要先将其存储在MySQL数据库中。由于路由配置信息自身没有载体,因此,为了实现预先存储在数据库中,需要通过预发路由配置表来存储变更后的路由配置信息,该预发路由配置表也可以写作pre_ruote_info。可选地,用户通过客户端新增路由配置信息、修改路由配置信息或删除路由配置信息等变更动作都会被记录在预发路由配置表中。其中,预发路由配置表类似一种备份的作用,在不影响线上路由配置表的情况下,已经将变更后的路由配置信息储存在MySQL数据库中。
本申请实施例中,通过预发路由配置表,先在数据库中对变更后的路由配置信息进行备份,不但保证了变更后的路由配置信息的存储问题,而且没有影响现有的线上路由配置表。
需明确的是,本申请实施例中提及的“预发路由配置表”以及“线上路由配置表”仅用于表明两种类型表的不同作用,该命名不对本申请构成限制。
一些实施例中,在S202中,当操作人员确认发布变更后的路由配置信息后,网关管理服务器将保存在数据库中的路由配置信息同步至线上路由配置表,具体可以包括:网关管理服务器将线上路由配置表的内容替换为预发路由配置表的内容,并将预发路由配置表中的数据更新为已发布状态。
S202中已经叙述,当网关管理服务器接收到客户端发出的确认发布路由配置信息的请求后,会将数据库中线上路由配置表中的路由配置信息替换为预发路由配置表中的路由配置信息,从而实现了信息的同步。在完成同步后,网关管理服务器还会将预发路由配置表中的路由配置信息更新为已发布状态,其目的是告知操作人员已经完成路由配置信息的线上同步。
示例地,当操作人员通过客户端完成确认操作后,同步的过程是在MySQL数据库和网关管理服务器之间执行的,同步完成后,MySQL数据库先返回数据响应给网关管理服务器,然后再由网关管理服务器再返回数据响应给客户端。操作人员从返回的数据响应中可得知变更后的路由配置信息已经被更新为已发布状态,即线上路由配置表已经完成同步操作。
本申请实施例中,先将预发路由配置表同步到线上路由配置表,并在同步后即时更新预发路由配置表中路由配置信息的状态,采用这种设计使得变更操作不会直接影响线上环境,既保证了线上数据的唯一与稳定,同时变更的历史追溯记录也会被存储下来。
关于在S203中,网关管理服务器将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由,具体可以包括:网关管理服务器向消息队列传递系统发送路由发布事件消息,路由发布事件消息用于指示消息队列传递系统将路由发布事件消息广播给网关集群,以使网关集群基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新。
示例地,网关管理服务器将线上路由表发送给网关集群,需要通过消息队列传递系统来实现。本申请实例中,消息队列传递系统可以是Kafka,其作用是作为消息传递系统,将消息发送至一个或多个队列。具体地,网关管理服务器需要先发送路由发布事件消息给Kafka,即消息队列传递系统;Kafka在接收到上述路由发布事件消息后,会再次将路由发布事件消息广播给网关集群,本申请实例中,网关集群可以是Zuul微服务网关集群;Zuul微服务网关集群接收到路由发布事件消息后,会尝试以MySQL数据库中线上路由配置表中数据为基础路由数据,重新更新本地路由规则,通过这样的流程实现网关集群的动态路由刷新。
更进一步地,网关集群可以包括至少一个网关,响应于接收到的路由发布事件消息,上述的至少一个网关基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新,可以通过图3来实现,图3为本申请另一实施例提供的动态网关路由管理方法的流程图。参考图3,本申请实施例的动态网关路由管理可以包括以下步骤:
S301、网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息。
S302、网关管理服务器在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表。
其中,对于S301和S302的具体描述可参考图2所述的实施例,与图2所述的实施例相对应,S203可以进一步包括如下所述的S303至S305:
S303、网关管理服务器向消息队列传递系统发送路由发布事件消息,路由发布事件消息用于指示消息队列传递系统将路由发布事件消息广播给网关集群。
在接收到路由发布事件消息后,网关集群基于所述路由发布事件消息获取所述线上路由配置表,进行网关路由的动态刷新。具体地:
S304、至少一个网关响应于接收到的路由发布事件消息,根据路由发布事件消息确定对应的消息处理器。
要实现上述的动态路由刷新,示例地,Zuul微服务网关集群在接收到来自Kafka的路由发布事件消息后,首先会根据不同的路由发布事件消息确定对应的消息处理器。示例地,上述消息处理器根据不同的变更操作,可以分为新增消息处理器、修改消息处理器和删除消息处理器等,不同的消息处理器对应不同的变更操作,进而执行不同动态刷新操作。另外,在一次完整的路由配置信息变更操作中,一般地,并不是Zuul微服务网关集群中的所有网关都会执行变更路由配置信息的操作,示例地,根据Kafka向Zuul微服务网关集群广播的路由发布事件消息中,Zuul微服务网关集群会确定具体响应该路由发布事件消息的网关或网关集群,并在该网关或网关集群中确定与路由发布事件消息对应的消息处理器,进而实现动态路由刷新。
S305、根据消息处理器,发起网关路由的刷新事件,刷新事件包括从数据库获取线上路由配置表,进行网关集群路由的动态刷新。
在确定相对应的消息处理器之后,上述响应于路由发布事件消息的网关或网关集群会执行其对应的刷新事件。具体地,在执行该刷新事件之前,由于Zuul微服务网关集群本身默认使用的是文件配置方式。所谓文件配置方式,即从现有的保存文件中提取对应的线上路由配置表,该配置方式不直接支持动态刷新机制,因此需要先自行对其进行扩展与改造。为了让Zuul微服务网关集群具有MySQL数据库的动态配置方式,需要自行创建新的RouteLocator实现类来代替Zuul微服务网关集群默认的RouteLocator类。其中最重要的就是复写locateRoutes方法,复写locateRoutes方法即为改写locateRoutes方法,其目的是在方法中实现从MySQL中加载路由配置数据的方式,就能实现基于MySQL数据库的动态路由配置。
当改写locateRoutes方法之后,如前面所述的,Zuul微服务网关集群在收到来自Kafka的路由发布事件消息后,会根据路由发布事件消息确定对应的网关和指定的消息处理器。进一步地,在确定指定的消息处理器之后,会执行process方法。具体地,在process方法中,会先定义刷新事件(RoutesRefreshedEvent事件),并会在Zuul微服务网关集群内部进行发布,当刷新事件被确定并发布后,会触发调用上述改写后的locateRoutes方法,如前文所述,该方法定义了从MySQL数据库中获取最新的路由配置信息,并加载到Zuul微服务网关集群中。
本申请实例中,对现有的locateRoutes方法进行改写,现有的locateRoutes方法只能从本地文件中获取线上路由配置表,改写后可以从MySQL数据库中对线上路由配置表进行读写,Zuul微服务网关集群根据接收到的路由发布事件消息确定对应的消息处理器,之后执行process方法,process方法定义了刷新事件并将其发布,从而实现了路由配置信息的动态刷新。
另外,在客户端上,网关集群在动态刷新网关路由后,返回刷新结果给客户端,客户端在网关路由管理界面上显示刷新结果。
具体地,网关集群完成动态刷新后,将刷新结果返回给网关管理服务器,再由网关管理服务器返回给网关管理平台客户端的操作人员。
本申请实例中,将动态刷新后的结果返回给客户端,操作人员可以在第一时间得知路由配置已经完成变更,方便快速进行后续操作,提高了网关管理的效率。
接下来,通过具体的网关管理结构图,可以更直观的展现在一次完整的路由配置变更操作中各个组件的执行步骤和关系。如图4所示,该动态网关路由管理方法可以包括:
图4中,操作人员通过客户端登录网关路由管理界面,并对路由配置信息进行变更,响应于这一变更,客户端发送路由变更请求给网关管理服务器。对应地,网关管理服务器会先将变更后的路由配置信息生成预发路由配置表,并将其保存在MySQL数据库中,该步骤也可以被称为信息持久化,对应图4中的封装参数并持久化,其中封装参数即为将数据打包,持久化为保存。信息持久化后,MySQL数据库会返回数据响应给网关管理服务器,网关管理服务器再次返回数据响应给客户端,客户端接收到数据响应后,操作人员可获取信息持久化已经完成这一信息,即路由配置信息已经被预保存在MySQL数据库中。
当操作人员经过确认,将确认发布变更路由配置信息的请求发送给网关管理服务器,网关管理服务器接收到该请求后,会提取MySQL数据库中预发路由配置表中的路由配置信息,并用其替换掉线上路由配置表中的路由配置信息,上述操作对应到图4中的同步预发至生产配置表这一步骤,图4中的生产配置表可以是本申请中的线上路由配置表,完成了路由配置信息的同步操作后,返回集合给网关管理服务器,以告知网关管理服务器完成同步操作。
同步操作后,网关管理服务器向Kafka发送路由发布事件消息,并由Kafka将路由发布事件消息广播给Zuul微服务网关集群,具体的实现步骤已经在前文叙述,这里不再赘述。Zuul微服务网关集群基于路由发布事件消息,执行对应的刷新事件,具体的过程即为从MySQL数据库中获取线上路由配置表,即图4中的拉取生产路由配置并返回集合对象这一步骤,图4中的生产路由配置和前文中生产配置表相同,可以对应于申请的线上配置表,最后基于该配置表中的路由配置信息,更新本地路由规则,在不重启Zuul网关集群的情况下实现动态刷新。
动态刷新后,将结果返回给客户端,客户端一侧的操作人员获取到动态刷新执行完成的信息后,进行后续跨网关间的业务操作。
本申请实施例中,采用了基于Zuul微服务网关集群、MySQL数据库与Kafka相结合的网关路由刷新机制以及集中管理的设计思路,对外提供统一的网关路由管理平台,并实现了网关路由动态灵活的配置,开发人员可以根据业务的需要,通过可视化界面操作修改路由规则,刷新并同步最新的路由配置给网关集群,网关在不重启的前提下就能实现路由动态刷新的效果,保证网关机群在路由配置更新过程中的平滑过渡。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5为本申请一实施例提供的装置的结构示意图。如图5所示,本申请提供一种动态网关路由管理装置500,应用于网关管理服务器。该动态网关路由管理装置500包括:
保存模块501,用于在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,路由变更请求携带路由配置信息;
同步模块502,用于在接收到来自客户端的确认发布路由配置信息的请求后,将保存在数据库中的路由配置信息同步至线上路由配置表;
动态刷新模块503,用于在完成同步后,将线上路由配置表发送至网关集群,以使网关集群基于线上路由配置表动态刷新网关路由。
一些实施例中,保存模块501具体用于:在接收到来自客户端的路由变更请求后,从路由变更请求中获取路由配置信息;根据路由配置信息生成预发路由配置表;将预发路由配置表保存在数据库中。
一些实施例中,同步模块502具体用于:将线上路由配置表的内容替换为预发路由配置表的内容,并将预发路由配置表中的数据更新为已发布状态。
一些实施例中,动态刷新模块503具体用于:向消息队列传递系统发送路由发布事件消息,路由发布事件消息用于指示消息队列传递系统将路由发布事件消息广播给网关集群,以使网关集群基于路由发布事件消息获取线上路由配置表,进行网关路由的动态刷新。
一些实施例中,网关集群包括至少一个网关,该至少一个网关具体用于:响应于接收到的路由发布事件消息,根据路由发布事件消息确定对应的消息处理器;根据消息处理器,发起网关路由的刷新事件,刷新事件包括从数据库获取线上路由配置表,进行网关路由的动态刷新。
一些实施例中,网关集群还可以用于:网关集群在动态刷新网关路由后,返回刷新结果给客户端,以使客户端在网关路由管理界面上显示刷新结果。
本申请实施例提供的装置,可用于执行如前所述任一实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图6为本申请一实施例提供的电子设备的结构示意图。示例性地,电子设备可以被提供为一服务器或计算机。参照图6,电子设备600包括处理组件601,其进一步包括一个或多个处理器,以及由存储器602所代表的存储器资源,用于存储可由处理组件601的执行的指令,例如应用程序。存储器602中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件601被配置为执行指令,以执行上述任一方法实施例中客户端或网关管理服务器或网关集群执行的步骤。
电子设备600还可以包括一个电源组件603被配置为执行电子设备600的电源管理,一个有线或无线网络接口604被配置为将电子设备600连接到网络,和一个输入输出(I/O)接口605。电子设备600可以操作基于存储在存储器602的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例提供的电子设备,可用于执行如前所述任一实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
本申请实施例提供一种动态网关路由管理系统,包括:网关管理服务器和网关集群,其中:
网关管理服务器用于执行如前所述任一实施例中的动态网关路由管理方法中网关管理服务器执行的步骤;
网关集群用于执行如前所述任一实施例中的动态网关路由管理方法中网关集群执行的步骤。
一种可能的实施方式中,如图1所示例,该动态网关路由管理系统还可以包括:客户端、数据库和消息队列传递系统中的至少一种。其中:
客户端用于执行如前所述任一实施例中的动态网关路由管理方法中客户端执行的步骤;
数据库用于执行如前所述任一实施例中的动态网关路由管理方法中数据库执行的步骤;
消息队列传递系统用于执行如前所述任一实施例中的动态网关路由管理方法中消息队列传递系统执行的步骤。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上动态网关路由管理方法的方案中客户端或网关管理服务器或网关集群执行的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上的动态网关路由管理方法的方案中客户端或网关管理服务器或网关集群执行的步骤。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于动态网关路由管理装置中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种动态网关路由管理方法,其特征在于,包括:
网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,所述路由变更请求携带所述路由配置信息;
所述网关管理服务器在接收到来自所述客户端的确认发布所述路由配置信息的请求后,将保存在所述数据库中的所述路由配置信息同步至线上路由配置表;
所述网关管理服务器在完成同步后,将所述线上路由配置表发送至网关集群,以使所述网关集群基于所述线上路由配置表动态刷新网关路由。
2.根据权利要求1所述的动态网关路由管理方法,其特征在于,所述网关管理服务器在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,包括:
所述网关管理服务器在接收到来自客户端的路由变更请求后,从所述路由变更请求中获取所述路由配置信息;
所述网关管理服务器根据所述路由配置信息生成预发路由配置表;
所述网关管理服务器将所述预发路由配置表保存在所述数据库中。
3.根据权利要求1所述的动态网关路由管理方法,其特征在于,所述网关管理服务器将保存在所述数据库中的所述路由配置信息同步至线上路由配置表,包括:
所述网关管理服务器将所述线上路由配置表的内容替换为预发路由配置表的内容,并将所述预发路由配置表中的数据更新为已发布状态。
4.根据权利要求1至3中任一项所述的动态网关路由管理方法,其特征在于,所述网关管理服务器将所述线上路由配置表发送至网关集群,以使所述网关集群基于所述线上路由配置表动态刷新网关路由,包括:
所述网关管理服务器向消息队列传递系统发送路由发布事件消息,所述路由发布事件消息用于指示所述消息队列传递系统将所述路由发布事件消息广播给所述网关集群;
所述网关集群基于所述路由发布事件消息获取所述线上路由配置表,进行网关路由的动态刷新。
5.根据权利要求4所述的动态网关路由管理方法,其特征在于,所述网关集群包括至少一个网关,所述网关集群基于所述路由发布事件消息获取所述线上路由配置表,进行网关路由的动态刷新,包括:
所述至少一个网关响应于接收到的所述路由发布事件消息,根据所述路由发布事件消息确定对应的消息处理器;
根据所述消息处理器,发起网关路由的刷新事件,所述刷新事件包括从所述数据库获取所述线上路由配置表,进行网关路由的动态刷新。
6.一种动态网关路由管理装置,其特征在于,应用于网关管理服务器,所述动态网关路由管理装置包括:
保存模块,用于在接收到来自客户端的路由变更请求后,保存路由配置信息在数据库中,所述路由变更请求携带所述路由配置信息;
同步模块,用于在接收到来自所述客户端的确认发布所述路由配置信息的请求后,将保存在所述数据库中的所述路由配置信息同步至线上路由配置表;
动态刷新模块,用于在完成同步后,将所述线上路由配置表发送至网关集群,以使所述网关集群基于所述线上路由配置表动态刷新网关路由。
7.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至5任一项所述的动态网关路由管理方法中所述客户端或所述网关管理服务器或所述网关集群执行的步骤。
8.一种动态网关路由管理系统,其特征在于,包括:网关管理服务器和网关集群,其中:
所述网关管理服务器用于执行如权利要求1至5任一项所述的动态网关路由管理方法中网关管理服务器执行的步骤;
所述网关集群用于执行如权利要求1至5任一项所述的动态网关路由管理方法中网关集群执行的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至5任一项所述的动态网关路由管理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述的动态网关路由管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110708029.5A CN113452617B (zh) | 2021-06-24 | 2021-06-24 | 动态网关路由管理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110708029.5A CN113452617B (zh) | 2021-06-24 | 2021-06-24 | 动态网关路由管理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113452617A true CN113452617A (zh) | 2021-09-28 |
CN113452617B CN113452617B (zh) | 2023-12-19 |
Family
ID=77812691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110708029.5A Active CN113452617B (zh) | 2021-06-24 | 2021-06-24 | 动态网关路由管理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113452617B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422358A (zh) * | 2022-01-26 | 2022-04-29 | 中国农业银行股份有限公司 | Api网关配置更新方法及设备 |
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN116032824A (zh) * | 2022-12-16 | 2023-04-28 | 中国联合网络通信集团有限公司 | 路由数据的处理方法、网关组件、服务器、介质及系统 |
CN117478509A (zh) * | 2023-12-27 | 2024-01-30 | 南京研利科技有限公司 | 网关的集群管理系统、路由发布方法和电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027947A1 (en) * | 2006-03-16 | 2008-01-31 | Pritchett Dan L | System and method for managing network traffic routing |
CN108900329A (zh) * | 2018-06-21 | 2018-11-27 | 珠海宏桥高科技有限公司 | 基于网关基础服务的实时动态转发方法 |
CN109617807A (zh) * | 2018-12-28 | 2019-04-12 | 深圳云天励飞技术有限公司 | 路由信息更新方法、装置、网关及存储介质 |
CN110493067A (zh) * | 2019-09-05 | 2019-11-22 | 中国银联股份有限公司 | 一种api网关服务更新的方法及装置 |
CN111049695A (zh) * | 2020-01-09 | 2020-04-21 | 深圳壹账通智能科技有限公司 | 云网关配置方法和系统 |
CN111314141A (zh) * | 2020-02-21 | 2020-06-19 | 腾讯云计算(北京)有限责任公司 | 路由更新方法及装置 |
CN111884917A (zh) * | 2020-07-28 | 2020-11-03 | 浪潮云信息技术股份公司 | 基于微服务的网关系统及网关动态路由方法 |
US20210006496A1 (en) * | 2018-03-21 | 2021-01-07 | Huawei Technologies Co., Ltd. | Application Programing Interface API Gateway Cluster Control Method and API Gateway Cluster |
CN112260876A (zh) * | 2020-10-26 | 2021-01-22 | 欧冶云商股份有限公司 | 动态网关路由配置方法、平台、计算机设备及存储介质 |
CN112804722A (zh) * | 2020-12-31 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种微服务网关动态路由的实现方法 |
-
2021
- 2021-06-24 CN CN202110708029.5A patent/CN113452617B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027947A1 (en) * | 2006-03-16 | 2008-01-31 | Pritchett Dan L | System and method for managing network traffic routing |
US20210006496A1 (en) * | 2018-03-21 | 2021-01-07 | Huawei Technologies Co., Ltd. | Application Programing Interface API Gateway Cluster Control Method and API Gateway Cluster |
CN108900329A (zh) * | 2018-06-21 | 2018-11-27 | 珠海宏桥高科技有限公司 | 基于网关基础服务的实时动态转发方法 |
CN109617807A (zh) * | 2018-12-28 | 2019-04-12 | 深圳云天励飞技术有限公司 | 路由信息更新方法、装置、网关及存储介质 |
CN110493067A (zh) * | 2019-09-05 | 2019-11-22 | 中国银联股份有限公司 | 一种api网关服务更新的方法及装置 |
CN111049695A (zh) * | 2020-01-09 | 2020-04-21 | 深圳壹账通智能科技有限公司 | 云网关配置方法和系统 |
CN111314141A (zh) * | 2020-02-21 | 2020-06-19 | 腾讯云计算(北京)有限责任公司 | 路由更新方法及装置 |
CN111884917A (zh) * | 2020-07-28 | 2020-11-03 | 浪潮云信息技术股份公司 | 基于微服务的网关系统及网关动态路由方法 |
CN112260876A (zh) * | 2020-10-26 | 2021-01-22 | 欧冶云商股份有限公司 | 动态网关路由配置方法、平台、计算机设备及存储介质 |
CN112804722A (zh) * | 2020-12-31 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种微服务网关动态路由的实现方法 |
Non-Patent Citations (4)
Title |
---|
CHIEN-LIANG CHEN; WAN-YU LIU; SHU-HUAI CHANG; CHUN-CHENG LIN: "An approximate dynamic programming model for link scheduling in WMNs with gateway design constraint", 《9TH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND NETWORKING IN CHINA》 * |
何丹丹;叶小平;崔书超;孙灿;: "网关控制器平台化设计", 车辆与动力技术, no. 02 * |
何丹丹等: "网关控制器平台化设计", 《车辆与动力技术》 * |
何丹丹等: "网关控制器平台化设计", 《车辆与动力技术》, no. 02, 15 June 2017 (2017-06-15) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422358A (zh) * | 2022-01-26 | 2022-04-29 | 中国农业银行股份有限公司 | Api网关配置更新方法及设备 |
CN114422358B (zh) * | 2022-01-26 | 2024-01-30 | 中国农业银行股份有限公司 | Api网关配置更新方法及设备 |
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN114785861B (zh) * | 2022-06-22 | 2022-12-13 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN116032824A (zh) * | 2022-12-16 | 2023-04-28 | 中国联合网络通信集团有限公司 | 路由数据的处理方法、网关组件、服务器、介质及系统 |
CN117478509A (zh) * | 2023-12-27 | 2024-01-30 | 南京研利科技有限公司 | 网关的集群管理系统、路由发布方法和电子设备 |
CN117478509B (zh) * | 2023-12-27 | 2024-04-09 | 南京研利科技有限公司 | 网关的集群管理系统、路由发布方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113452617B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113452617A (zh) | 动态网关路由管理方法、装置及存储介质 | |
CN109976667B (zh) | 一种镜像管理方法、装置及系统 | |
CN106878376B (zh) | 一种配置管理方法与系统 | |
US9804994B2 (en) | Application architecture supporting multiple services and caching | |
US9032368B2 (en) | Dynamic configuration system | |
US20120066610A1 (en) | Sub-component instantiation and synchronization using a shared worker | |
CN112260853B (zh) | 容灾切换方法、装置、存储介质及电子设备 | |
US11681585B2 (en) | Data migration for a shared database | |
WO2016082594A1 (zh) | 数据更新处理方法及装置 | |
CN112765166A (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN111064626A (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN112235132B (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
CN113448650A (zh) | 直播功能插件加载方法、装置、设备及存储介质 | |
CN111625250B (zh) | 应用更新方法、装置、存储介质及电子设备 | |
CN107479982B (zh) | 一种数据同步的方法及终端 | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN112187916B (zh) | 一种跨系统的数据同步方法与装置 | |
CN115658171A (zh) | 一种轻量级解决java分布式应用配置动态刷新的方法及系统 | |
CN114201508A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN111381976B (zh) | 消息提示数据的更新方法、装置、存储介质及计算机设备 | |
CN108880849B (zh) | 属性信息的统计方法、装置及系统 | |
CN107544854B (zh) | 一种跨进程数据的同步存取方法及系统 | |
CN110851192A (zh) | 一种响应降级开关配置的方法和装置 | |
CN111782242B (zh) | 一种云环境下的客户端动态发布方法及装置 | |
US20240187501A1 (en) | Techniques for distributed interface component generation |
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 |