1.路由基本配置
全部的Demo点击下载Demo
1.新建Module模块servicecloud-zuul-gateway-9527
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
<modelVersion> 4.0.0 </modelVersion>
<parent>
<groupId> com.goolecloud.springcloud </groupId>
<artifactId> serverspringcloud </artifactId>
<version> 0.0.1-SNAPSHOT </version>
</parent>
<artifactId> servicecloud-zuul-gateway-9527 </artifactId>
<dependencies>
<!-- zuul 路由网关 -->
<dependency>
<groupId> org.springframework.cloud </groupId>
<artifactId> spring-cloud-starter-netflix-zuul </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.cloud </groupId>
<artifactId> spring-cloud-starter-netflix-eureka-client </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.cloud </groupId>
<artifactId> spring-cloud-starter </artifactId>
</dependency>
<!-- actuator 监控 -->
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-actuator </artifactId>
</dependency>
<!-- hystrix 容错 -->
<dependency>
<groupId> org.springframework.cloud </groupId>
<artifactId> spring-cloud-starter-netflix-hystrix </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.cloud </groupId>
<artifactId> spring-cloud-starter-config </artifactId>
</dependency>
<!-- 日常标配 -->
<dependency>
<groupId> com.goolecloud.springcloud </groupId>
<artifactId> serverspringcloud-api </artifactId>
<version> ${project.version} </version>
</dependency>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-jetty </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-test </artifactId>
</dependency>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-devtools </artifactId>
</dependency>
</dependencies>
</project>
yml
server:
port: 9527
spring:
application:
name: serverspringcloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true
##actuator端口
management:
# server:
# port: 9001
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
2.
hosts修改
127.0.0.1 myzuul.com
3.主启动类添加注解@EnableZuulProxy
启动三个eureka集群
一个服务提供类microservicecloud-provider-dept-8001,一个路由
4.测试
不用路由
http://localhost:8001/dept/get/2
启用路由
http://myzuul.com:9527/microservicecloud-dept/dept/get/2
http://myzuul.com:9527/servicecloud-dept/dept/get/2
2.路由访问映射规则
1.servicecloud-zuul-gateway-9527 yml 添加
zuul:
routes:
mydept.serviceId: serverspringcloud-dept
mydept.path: /mydept/**
此时问题
路由访问OK
http://myzuul.com:9527/mydept/dept/get/1
原路径访问OK
http://myzuul.com:9527/servicecloud-dept/dept/get/1
2.原真实服务名忽略
zuul:
routes:
mydept.serviceId: serverspringcloud-dept
mydept.path: /mydept/**
ignored-services: '*'
prefix: /goolecloud
ignored-services: "*" *表示多个服务名称忽略
3.设置统一公共前缀
YML
zuul:
routes:
mydept.serviceId: serverspringcloud-dept
mydept.path: /mydept/**
ignored-services: '*'
prefix: /goolecloud
http://myzuul.com:9527/goolecloud/mydept/dept/get/1
全部的yml
server:
port: 9527
spring:
application:
name: serverspringcloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true
zuul:
routes:
mydept.serviceId: serverspringcloud-dept
mydept.path: /mydept/**
ignored-services: '*'
prefix: /goolecloud
##actuator端口
management:
# server:
# port: 9001
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
最后近期期待SpringCloud Config分布式配置中心文章
1.SpringCloud Config服务端配置
2.SpringCloud Config客户端配置与测试