Spring Cloud 学习 | - 09 -Zuul路由网关(二)

Spring Cloud 学习 | - 09 -Zuul路由网关(二)

学习 Spring Cloud 之路,文中 Spring Boot 版本为 2.1.3.RELEASESpring Cloud 版本为 Greenwich.SR1 。因能力有限,难免会有不足或者错误之处,还望不吝指正,谢!

在上篇 Spring Cloud 学习 | - 08 -Zuul路由网关(一)的路由规则中,路径对应的服务地址是写死的。如果同一服务有多个实例的话,这样显然就不合适了。
我们应该根据服务的名称,去Eureka注册中心查找 服务对应的所有实例列表,然后进行动态路由才对。

开始着手!

1. 添加依赖

在上一篇的spring-cloud-zuul服务中添加如下依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

2. 开启服务发现

在主启动类上开启服务发现功能:@EnableDiscoveryClient:

@SpringBootApplication
// 开启Zuul的网关功能
@EnableZuulProxy
@EnableDiscoveryClient
public class SpringCloudZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudZuulApplication.class, args);
    }

}

3. 编写配置

3.1 添加eureka配置,获取注册信息

application.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
    registry-fetch-interval-seconds: 5 # 获取服务列表的周期 5s
  instance:
    prefer-ip-address: true

3.2 修改zuul配置

application.yml

zuul:
  routes:
    user-provider: # 这里是路由id,自定义即可
      path: /user-provider/** # 这里是映射路径
#      url: http://localhost:8090 # 映射路径对应的实际url地址
      serviceId: user-provider # 指定服务名称

4. 启动测试

  1. 先启动Eureka注册中心;
  2. 再启动user-provider服务;
  3. 启动spring-cloud-zuul服务;
  4. 访问http://localhost:9090/user-provider/user/list
    在这里插入图片描述
发布了60 篇原创文章 · 获赞 176 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/E09620126/article/details/89197201
今日推荐