码迷,mamicode.com
首页 > 编程语言 > 详细

Zuul —— SpringCloud(七)

时间:2020-04-14 16:42:35      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:enable   man   tca   压力测试   监控   gateway   boot   开启   thread   

什么是Zuul?

  Zuul是Netflix开源的微服务网关。

  Zuul可以和Eureka、Ribbon、Hystrix等组件配合使用。

  Zuul的核心是一系列的过滤器,可以完成以下功能。

    身份认证和安全:识别每个资源的验证请求,并拒绝那些与要求不符的请求。

    审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。

    动态路由:动态地将请求路由到不同的后端集群。

    压力测试:逐渐增加指向集群的流量,以了解性能。

    负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求。

    静态响应处理:在边缘位置直接建立部分响应,从而避免其转发到内部集群。

    多区域弹性:跨越AWS Region进行请求路由,意图在实现ELB使用的多样化,以及让系统的边缘更加贴近系统的使用者。

  SpringCloud对Zuul进行了整合和增强。

  目前,Zuul使用的默认HTTP客户端是Apache Http Client,也可以使用RestClient或者okhttp3.0HttpClient。

  如果想要使用RestClient,可以设置 ribbon.restclient.enable=true 

  想要使用okhttp3.0HttpClient,可以设置 ribbon.okhttp.enable=tue

 

初步使用Zuul

编写配置

server:
  port: 10010 #服务端口
spring:
  application:
    name: api-gateway #指定服务名

 

编写引导类

  通过 @EnableZuulProxy 注解开启Zuul功能。

@SpringBootApplication
@EnableZuulProxy // 开启网关功能
public class ItcastZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(ItcastZuulApplication.class, args);
    }
}

 

编写路由规则

  映射规则:

server:
  port: 10010 #服务端口
spring:
  application:
    name: api-gateway #指定服务名
zuul:
  routes:
    service-provider: # 这里是路由id,随意写
      path: /service-provider/** # 这里是映射路径
      url: http://127.0.0.1:8081 # 映射路径对应的实际url地址

 

负载均衡和熔断

  Zuul中默认就已经继承了Ribbon负载均衡和Hystrix熔断机制。但是所有的超时策略都是默认值。

  比如,熔断超时时间只有1s,很容易就被触发了,所以建议手动配置:

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 2000 # 设置hystrix的超时时间为6000ms

 

Zuul —— SpringCloud(七)

标签:enable   man   tca   压力测试   监控   gateway   boot   开启   thread   

原文地址:https://www.cnblogs.com/guancangtingbai/p/12698760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!