Spring Cloud 系列之 Netflix Zuul 服务网关(四)
发布网友
发布时间:2024-10-03 16:27
我来回答
共1个回答
热心网友
时间:2024-10-25 22:29
本文系系列文章之四,旨在阐述Zuul与Sentinel整合以实现网关限流、容错与构建高可用网关环境的步骤。
Zuul与Sentinel整合
说明:Sentinel支持对Spring Cloud Gateway、Netflix Zuul等主流API Gateway进行限流。
操作步骤
1. 创建项目:zuul-server-sentinel
2. 添加依赖
单独使用时,只需添加sentinel-zuul-adapter依赖。
若与Sentinel Starter配合,需添加spring-cloud-alibaba-sentinel-gateway依赖,并同时引入spring-cloud-starter-netflix-zuul以激活Zuul自动化配置。
配置项
确保spring.cloud.sentinel.filter.enabled置为false(若在网关流控控制台上看到URL资源,此配置未置为false)。
配置文件与服务配置
配置网关服务过滤器和限流规则。
启动类
ZuulServerSentinelApplication.java
测试
多次访问:http://localhost:9001/order-service/order/1,触发限流后返回固定提示。
自定义限流处理
编写限流处理类(OrderBlockFallbackProvider.java)并注册至Zuul容器。
测试
触发限流后,返回自定义提示。
高可用网关
高可用网关通过数据冗余备份与服务失效转移实现。
具体方法
1. 使用Nginx +网关集群实现
下载稳定版Nginx(官网:nginx.org/en/download.h...推荐Windows版)
安装与验证
解压后运行根目录下的nginx.exe,访问:http://localhost:80/验证安装成功。
配置网关集群
修改nginx.conf文件,配置网关集群。
访问测试
启动多台网关服务器,访问:http://localhost/proct-service/proct/1实现高可用。
总结
一个请求首先进入Nginx负载,通过网关分发到后端服务,若后端故障,网关进行重试,多次访问后若仍返回失败,则可实施熔断或服务降级策略。
至此,Zuul服务网关的知识点讲解完毕。
更多Spring Cloud相关文章可通过分类查看。
本文遵循知识共享「署名-非商业性使用-禁止演绎 4.0 国际」许可协议。