1、pom.xml中添加Maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
2、启动类上配置注解
@EnableZuulProxy
@SpringBootApplication
public class CloudZuulApplication {
public static void main(String[] args) {
SpringApplication.run(CloudZuulApplication.class, args);
}
}
3、yml文件中添加配置
基础配置
下面三个分别为网关服务、短信服务、用户服务基础配置
网关服务配置
server:
port: 9100
spring:
application:
name: cloud-zuul
# 注册中心
eureka:
client:
service-url:
defaultZone: http://localhost:7901/eureka/
用户服务配置
server:
# 服务端口
port: 7001
spring:
application:
# 应用名称
name: service-user
# 注册中心配置
eureka:
client:
enabled: true
service-url:
defaultZone: http://localhost:7901/eureka/
路由配置
1.不配置路由
不配置路由则使用默认路由规则:
http://网关ip:网关端口/服务名/接口uri
访问短信服务:http://127.0.0.1:9100/service-sms/test
访问用户服务:http://127.0.0.1:9100/service-user/test:
2.配置 serviceId 路由
# 路由配置
zuul:
# 网关前缀
prefix: /api
routes:
# 路由规则名(自定义)
service-user:
# 映射路径:匹配该路径的请求会转发到对应服务名称的服务,如果有多台实例,会进行负载均衡
path: /user/**
# 转发前是否移除 path 中的前缀
strip-prefix: true
# 注册中心,服务应用名称
serviceId: service-user
# 忽略默认路由规则(忽略直接使用网关+服务名访问)
ignored-services:
- service-user
# 忽略请求头敏感信息(默认值为 "Cookie", "Set-Cookie", "Authorization" ,如果配置空则表示所有请求头都会转发到下游服务)
sensitive-headers: token
3.配置 url 路由
直接指定转发请求的地址,这种方式不会走负载均衡
zuul:
routes:
# 路由规则名(自定义)
service-user:
path: /user/**
url: http://localhost:7001/