spring|网关-zuul

spring|网关-zuul


今天我们开始讨论 Spring Cloud 中的另一个核心技术组件 , API网关 。
什么是 API 网关在微服务架构中 , API 网关也称为服务网关 。 通常 , 网关能够起到客户端与微服务之间的隔离作用 。 随着业务需求的变化和时间的演进 , 网关背后的各个微服务的划分和实现可能需要做相应的调整和升级 。
同时 , 如果我们在服务调用过程中添加了这样一个网关层 , 那么所有的客户端都是需要通过这个统一的网关来请求到微服务 。 这样一些非业务功能性需求就可以在网关层进行集中处理 , 比如:请求监控 , 路由管理 , 安全校验 , 访问控制 , 日志记录等等非业务性质的功能 。 而具体的微服务只需要处理自己的业务即可 。
在 Spring Cloud 中 , 针对 API 网关的实现提供了两种解决方案 。 一种是集成 Netflix 中的 Zuul 网关 , 一种是自研 Spring Cloud Gateway 。 今天先简单讨论下zuul 。
使用zuul首先 , 要想使用zuul , 我们仍然需要先将zuul的依赖引入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
然后在启动类中 , 添加@EnableZuulProxy注解 , 这个注解表明 , 嵌入该注解的类将自动成为 Zuul 服务器的入口 。 当然这个注解还有着其他的非常强大的功能 , 我们可以基于此注解来使用 Zuul 中的各种内置过滤器实现复杂的服务路由 。
另一方面 , API 网关也可以裂解为该服务的消费者和提供者之间提供了一层反向代理 , 充当着前置负载均衡器的角色 。 所以 , API 网关的定位决定了 Zuul 需要依赖 Ribbon 。 而 Zuul 也可以做到与 Ribbon 完成无缝集成 。
这个时候启动服务后 , 就可以在eureka中看到我们当前的zuul服务了 。
访问这个地址 http://localhost:zuul端口号/actuator/routes” , 可以看到路由信息 。 这是有 Zuul 提供的服务路由端点 , 展示了目前在 Zuul 中配置的服务路由信息 。
由于我们的微服务一般都是有很多的服务组成 , 为了方便区分 , 往往都加上了服务前缀 , 我们可以在配置文件中做如下处理:就比如当前项目 , 我们所有的请求统一机上/abc请求前缀 。
zuul:
routes:
【spring|网关-zuul】service: /abc/**

    相关经验推荐