Zuul路由网关:
创建网关服务:
导入依赖:
zuul依赖和Eureka依赖必须
<!--实体类+web-->
<dependencies>
<!--zuul依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--Eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--Hystrix依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--监控页面依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--ribbon依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.stt</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
application.yml配置文件:
server:
port: 9527
# 服务名称
spring:
application:
name: springcloud-zuul
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
instance-id: zuul9527.com # 修改eureka上的默认描述信息
prefer-ip-address: true # 隐藏地址
#info配置
info:
app.name: stt-springcloud
company.name: mazha.stt.com
#网关配置
zuul:
routes: # 底层是map,可以自定义配置
mydept.serviceId: springcloud-provider-dept # 自己原来的id(服务名称)
mydept.path: /mydept/** # 修改为当前id访问
# 声明不能使用的路径访问,ignored-services: "*" 表示隐藏全部访问路径
ignored-services: springcloud-provider-dept
prefix: /stt # 设置公共访问前缀
其中网关设置的 routes(路由)设置底层是map:
public void setRoutes(Map<String, ZuulProperties.ZuulRoute> routes) {
this.routes = routes;
}
可以自定义配置
启动类:
注解@EnableZuulProxy开启网关代理
package com.stt.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
/**
* @author leizi
* @create 2019-12-10 22:49
*/
@SpringBootApplication
@EnableZuulProxy // 开启网关代理
public class ZuulApplication_9527 {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication_9527.class, args);
}
}
测试: