网关 Spring Cloud Zuul 简介 入门

345 阅读2分钟

文章目录

简介

路由是微服务架构不可或缺的一部分。例如,/可能被映射到您的Web应用程序,/api/users被映射到用户服务以及/api/shop被映射到商店服务。 Zuul是Netflix基于JVM的路由器和服务器端负载均衡器。

Zuul功能如下:

  • Authentication - 认证
  • Insights - 审查监控
  • Stress Testing - 压力测试
  • Canary Testing - 金丝雀测试
  • Dynamic Routing - 动态路由
  • Service Migration - 服务迁移
  • Load Shedding - 负载均衡
  • Security - 安全
  • Static Response handling - 静态响应处理
  • Active/Active traffic management - 动态流量管理

Zuul的规则引擎使规则和过滤器基本上可以用任何JVM语言编写,并具有对Java和Groovy的内置支持

配置属性zuul.max.host.connections已由两个新属性替换,zuul.host.maxTotalConnectionszuul.host.maxPerRouteConnections分别默认为200和20。

ExecutionIsolationStrategy所有路由 的默认Hystrix隔离模式()为SEMAPHOREzuul.ribbonIsolationStrategy可以更改为THREAD是否首选该隔离模式。

快速开始

依赖导入

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

具体版本依赖可以去start.spring.io/查看。

代码示例

使用@EnableZuulProxy注解来开启代理。代理使用Ribbon通过服务发现来定位后端服务实例。并且所有请求在 hystrix command中执行。所以当断路器打开时,代理将不会重试连接后端服务。

注意:Zuul starter不包含服务发现客户端,所以想要使用服务发现功能,需要提供一个服务发现客户端(比如Eureka)

@Configuration
@EnableZuulProxy
public class ZuulConfig {
}

配置文件

 zuul:
  routes:
    laker:
      path: /laker/**
      url: http://httpbin.org

请求:http://localhost:8080/laker/get 将被路由到 httpbin.org/get。


QQ群【837324215】
关注我的公众号【Java大厂面试官】,回复:常用工具资源等关键词(更多关键词,关注后注意提示信息)获取更多免费资料。

公众号也会持续输出高质量文章,和大家共同进步。