简介
为了解决服务url地址显式暴露等问题,zull可以提供解决方案实现url的部分自定义,并可以通过配置决定原来的地址是否可继续使用等。
步骤
- 创建一个空项目,导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
-
开启zuul功能
在启动类加上@EnableZuulProxy
注解 -
配置端口,应用名,eureka等信息
server:
port: 9999
spring:
application:
name: zuul
eureka:
client:
service-url:
defaultZone: http://eureka7003:7003/eureka/,http://eureka7002:7002/eureka/,http://eureka7001:7001/eureka/
运行程序,在9999端口通过服务名可以访问到数据:
显然暴露了服务的名字,还需要继续配置解决这个问题。
- 定义路由匹配规则
zuul:
routes:
#服务的名称
dept.serviceId: SPRINGCLOUD-PROVIDER-DEPT
#根据路径匹配到上面的服务
dept.path: /**
- 测试:
既不暴露服务名称,也不暴露服务的真正ip。但是通过服务名还是可以继续访问到数据,如果要实现通过服务名不能访问数据,可以继续添加如下:
zuul:
routes:
#服务的名称
dept.serviceId: SPRINGCLOUD-PROVIDER-DEPT
#根据路径匹配到上面的服务
dept.path: /**
ignored-services: "*"