SpringCloud学习笔记(五)-SpringCloud Zuul

路由器和过滤器:Zuul

路由在微服务体系结构的一个组成部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,并将/api/shop映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。

Netflix使用Zuul进行以下操作:
- 认证
- 洞察
- 压力测试
- 金丝雀测试
- 动态路由
- 服务迁移
- 负载脱落
- 安全
- 静态响应处理
- 主动/主动流量管理

1、引入依赖包

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>

2、程序启动类中添加@EnableZuulProxy 注解
@@EnableZuulProxy 注解中包含了服务注册和熔断机制的注解

3、 这时候启动程序后,可以同zuul 代理的端口访问被注册的服务
例如:

    http://192.168.1.107:8089/eureka-client/show/001

可以通过zuul 服务器地址加服务名(eureka-client)的方式调用


zuul 参数配置

1、对于特定的服务,我们可以指定服务标识,去调用指定的服务

zuul:
  ignoredServices: '*'
  routes:
    eureka-client: /ec/**

上述方式我们可以同过/ec 标识调用eureka-client客户端
这里写图片描述
ignoredServices: ‘*’ : 在此示例中,除 “用户” 之外,所有服务都被忽略
忽略单个,可以加单个的服务名

2、我们还可以通过serviceId和指定路径,来对服务进行细粒度的绑定

zuul:
  routes:
    ecmark:
      path: /ec/**
      serviceId: eureka-client

ecmark : 只代表一个名字,没有实际意义
path为 ant样式模式,所以“/ ec/ *”只匹配一个级别,比如/ec/show
但“/ ec / **”分层匹配, 例/ec/show/001

3、 我们也可以通过URL 方式来指定服务

zuul:
  routes:
    ecmark:
      path: /ec/**
      url: http://192.168.1.107:8083/

4、通过Zuul上传文件
如果您@EnableZuulProxy您可以使用代理路径上传文件,只要文件很小,它就应该工作。对于大文件,有一个替代路径绕过“/ zuul / ”中的Spring DispatcherServlet(以避免多部分处理)。也就是说,如果zuul.routes.customers=/customers/*则可以将大文件发送到“/ zuul / customers / *”。servlet路径通过zuul.servletPath进行外部化。如果代理路由引导您通过Ribbon负载均衡器,例如,超大文件也将需要提升超时设置

application.yml
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
ConnectTimeout: 3000
ReadTimeout: 60000

猜你喜欢

转载自blog.csdn.net/panleiaiying/article/details/80339023