传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器。这时候我们结合上节课内容整合SpringCloud Config分布式配置中心,实现动态路由规则。
将yml的内容粘贴到码云上:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
###注册 中心eureka: client:
serviceUrl:
defaultZone: http://localhost:8100/eureka/
server: ##api网关端口号 port: 80
###网关名称spring: ##网关服务名称 application:
name: service-zuul
<strong>### 配置网关反向代理
zuul: routes:
api-member: ##随便写的
### 以 /api-member/访问转发到会员服务 通过别名找
path: /api-member/**
serviceId: app-toov5-member ##别名 如果集群的话 默认整合了ribbon 实现轮训 负载均衡
api-order: ##随便写的
### 以 /api-order/访问转发到订单服务
path: /api-order/**
serviceId: app-toov5-order ##别名
</strong>
|
添加到依赖:
|
1
2
3
4
|
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
|
可以实现手动刷新
yml中添加:
|
1
2
3
4
5
6
7
8
|
###默认服务读取eureka注册服务列表 默认间隔30秒###开启所有监控中心接口management: endpoints:
web:
exposure:
include: "*"
|
开启所有监控中心接口
启动类里面添加:
//zuul配置使用config实现实时更新
@RefreshScope
@ConfigurationProperties("zuul")
public ZuulProperties zuulProperties() {
return new ZuulProperties();
}
package com.toov5;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy //开启网关代理
public class AppGateway {
public static void main(String[] args) {
SpringApplication.run(AppGateway.class, args);
}
//zuul配置使用config实现实时更新
@RefreshScope
@ConfigurationProperties("zuul")
public ZuulProperties zuulProperties() {
return new ZuulProperties();
}
}
yml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
###注册 中心eureka: client:
serviceUrl:
defaultZone: http://localhost:8100/eureka/
server: ##api网关端口号 port: 80
###网关名称spring: ##网关服务名称 application:
name: service-zuul
###网关名称
cloud:
config:
####读取后缀
profile: dev
####读取config-server注册地址
discovery:
service-id: confi
### 配置网关反向代理 #zuul:# routes:# api-member: ##随便写的# ### 以 /api-member/访问转发到会员服务 通过别名找# path: /api-member/**# serviceId: app-toov5-member ##别名 如果集群的话 默认整合了ribbon 实现轮训 负载均衡# api-order: ##随便写的# ### 以 /api-order/访问转发到订单服务# path: /api-order/**# serviceId: app-toov5-order ##别名 |
启动eureka和configserver
访问:
可以读取到
启动 gateway
然后启动 member
访问:
配置文件是从git读取的,成功!