Gateway在数据库中实现动态网关

本文介绍了一种实现动态网关的方法,即在网关启动时从数据库中加载配置,并将其存储在内存中。不推荐使用配置中心,因为JSON格式配置可读性较差,而数据库中的表结构设计能提供更好的阅读体验。当需要更新网关配置时,可以先更新数据库,然后通过调用API将新配置同步到网关内存中。文中提到了动态路由表结构,以及涉及的文件如pom.xml、application.yml和相关Java服务类。
摘要由CSDN通过智能技术生成

实现思路:

1.在网关启动默认加载时,从数据库中查询网关配置

2.将数据库的内容读取保存在网关内存中

 

为什么不建议使用配置中心呢?

需要定义json格式配置,阅读性差,采用表结构设计可阅读性很强.

 

网关配置更新思路:

1.更新网关配置到数据库

2.调用网关api更新网关到内存中

 

动态路由表结构

CREATE TABLE `gateway` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `route_id` varchar(11) DEFAULT NULL,

  `route_name` varchar(255) DEFAULT NULL,

  `route_pattern` varchar(255) DEFAULT NULL,

  `route_type` varchar(255) DEFAULT NULL,

  `route_url` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

pom.xml

<dependencies>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
			<version>2.2.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-gateway-core</artifactId>
			<version>2.2.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值