Spring Cloud Gateway 实现动态路由和灰度发布

Gateway 动态路由

  • 创建数据库表
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `gateway_api_route` (
`id` varchar(50) NOT NULL,
`path` varchar(255) NOT NULL,
`service_id` varchar(50) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL,
`retryable` tinyint(1) DEFAULT NULL,
`enabled` tinyint(1) NOT NULL,
`strip_prefix` int(11) DEFAULT NULL,
`api_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 插入表数据
1
INSERT INTO gateway_api_route (id, path, service_id, retryable, strip_prefix, url, enabled) VALUES ('order-service', '/order/**', 'order-service',0,1, NULL, 1);

提示

企业项目中可以使用 Spring MVC 结合前端页面,开发一个可视化网关管理工作台。当新服务开发完成后,可以通过这个工作台对网关配置进行管理,比如为某个服务绑定对应的 URL 路径,并支持增删改查操作,实现服务路由配置的可视化管理。

Gateway 灰度发布

  • 创建数据库表
1
2
3
4
5
6
7
CREATE TABLE `gray_release_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`service_id` varchar(255) DEFAULT NULL,
`path` varchar(255) DEFAULT NULL,
`enable_gray_release` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

参考资料