SpringCloud 微服务架构(23)- 面向服务的路由配置

1 面向服务的路由配置

微服务一般是由几十、上百个服务组成,对于一个URL请求,最终会确认一个服务实例进行处理。如果对每个服务实例手动指定一个唯一访问地址,然后根据URL去手动实现请求匹配,这样做显然就不合理。Zuul支持与Eureka整合开发,根据ServiceID自动的从注册中心中获取服务地址并转发请求,这样做的好处不仅可以通过单个端点来访问应用的所有服务,而且在添加或移除服务实例的时候不用修改Zuul的路由配置。


  1. 添加Eureka客户端依赖(zuul工程)
<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
  1. 开启Eureka客户端发现功能
@SpringBootApplication
// 开启zuul网关
@EnableZuulProxy
// eureka的服务发现
@EnableDiscoveryClient
public class ZuulServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulServerApplication.class, args);
    }
}

  1. 添加Eureka配置,获取服务信息
    在这里插入图片描述
server:
  port: 8080
spring:
  application:
    name: api-zuul-server #服务名称
# 路由配置
zuul:
  routes:
    product-server: # 路由id,随便写
      path: /product-service/** #映射路径 localhost:8080/product-service/sxxxx
      #url: http://localhost:9002 #映射路径对应的实际微服务地址url
      serviceId: service-product #配置转发的微服务的服务名称
eureka:
  client:
    service-url :
      defaultZone: http://localhost:9000/eureka/
  instance:
    prefer-ip-address: true # 使用 ip 地址注册


  • 重启 zuul 工程
    在这里插入图片描述

2 简化路由配置

  • zuul 工程
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2.1 默认路由

在使用Zuul的过程中,上面讲述的规则已经大大的简化了配置项。但是当服务较多时,配置也是比较繁琐的。因此Zuul就指定了默认的路由规则:

  • 默认情况下,一切服务的映射路径就是服务名本身。
  • 例如服务名为: shop-service-product ,则默认的映射路径就是: /shop-serviceproduct/**
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页