Spring Cloud的一些理解(六)---服务网关Zuul

主要是用于统一向外部系统提供REST接口的API,一般具备服务路由、均衡负载、权限控制等功能,使服务集群主体能够具备更高的复用性和测试性。

使用时在Spring Boot启动类上添加注解@EnableZuulProxy和@EnableDiscoveryClient(作为Eureka客户端),需要添加依赖:

<!-- 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>

配置说明(.yml方式)

# 服务网关设置
zuul:
  prefix: /api # 添加路由前缀
  retryable: true 
  routes:
    a-service: /test/** # 将a微服务映射到/test/**,这里使用简写方式zuul.routes.<serviceId>=<path>
  # 忽略的服务
  ignored-services:
    - b-service
    - c-service
  add-host-header: true # 允许携带请求本身的host头信息
  sensitive-headers: # 设置zuul的过滤头为空(所有的头信息全部展示)
## 负载均衡策略需要指定服务(serviceId)才能生效
a-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
## 负载均衡超时设置等可以不指定服务(serviceId)
ribbon:
  ConnectTimeout: 250 # 连接超时时间(ms)
  ReadTimeout: 2000 # 通信超时时间(ms)
  OkToRetryOnAllOperations: true # 是否对所有操作重试
  MaxAutoRetriesNextServer: 1 # 同一服务不同实例的重试次数
  MaxAutoRetries: 1 # 同一实例的重试次数
## 熔断超时时长设置
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 6000 # 6000ms, 一般需要比ribbon超时时间长

外部需要访问时,只需要填写服务网关的地址,如http://ip:port/api/test/**,就可以访问到对内部服务a-service的请求。

服务网关还涉及到跨域、过滤、熔断的处理,等以后在添加吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值