所有的微服务访问读的通过网关访问。
实现了:
- 路由
- 负载均衡Ribbon
- 服务熔断hystrix
创建getaway服务模块
pom.xml
<dependencies>
<!--zuul网关 对外暴露 访问微服务必须都的通过网关访问-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<!--使用eureka完成服务列表的拉取-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
启动器GetawayApplication
@EnableZuulProxy
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class);
}
}
配置文件application.xml
server:
port: 10010
spring:
application:
name: getaway
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10087/eureka #配置eureka服务注册
zuul:
routes:
user-service: /user-service/** #路由配置 微服务ID :网关前缀
ignored-services:
- consumer-demo
ribbon:
ConnectionTimeout: 500 #建立连接时长,超时则抛出异常
ReadTimeout: 2000 #读取数据时长,超过则抛出异常
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 6000
# 设置hystrix的超时时间为6000ms (ConnectionTimeout+ReadTimeout) *2 不能超过timeoutInMilliseconds