Envoy熔断限流实践(二)Rainbond基于RLS服务全局限流
· 阅读需 7 分钟
Envoy 可以作为 Sevice Mesh 微服务框架中的代理实现方案,Rainbond 内置的微服务框架同样基于 Envoy 实现。本文所描述的熔断实践基于 Rainbond 特有的插件机制实现。
Envoy 全局限速
尽管分布式熔断器在大多数情况下控制分布式系统中的吞吐量非常有效,但有时它的效果并不是很好,这时候便需要全局限速。最常见的情况是当大量主机转发到少量主机并且平均请求延迟很短时(例如,发送给数据库服务器的连接/请求)。若目标主机成为备机,则下游主机将压垮上游集群。在这种情况下,很难对每个下游主机配置足够严格的熔断器,使得系统可以平稳运行,同时,当系统开始出现故障时,仍然可以防止级联故障。对于这种情况,全局限速是一个很好的解决方案。
Envoy 全局限速方案需要基于一个全局 RLS(rate limit service)服务实现,RLS 被设计为一种为不同类型应用提供不同限速场景的 Go/gRPC 服务。
构建全局限速服务
一种开箱即用的全局限速服务已经被纳入 Rainbond 内置的开源应用商店中,用户可以基于以下操作一键安装速率限制服务。
- 访问内置的开源应用商店
选择左侧的 应用市场 标签页,在页面中切换到 开源应用商店 标签页,搜索关键词 速率限制** 即可找速率限制服务。
- 一键安装
点击速率限制服务右侧的 安装 可以进入安装页面,填写简单的信息之后,点击 确定 即可开始安装,页面自动跳转到拓扑视图。
参数说明:
选择项 | 说明 |
---|---|
团队名称 | 用户自建的工作空间,以命名空间隔离 |
集群名称 | 选择速率限制服务被部署到哪一个 K8s 集群 |
选择应用 | 选择速率限制服务被部署到哪一个应用,应用中包含有若干有关联的组件 |
应用版本 | 选择速率限制服务的版本,目前版本为 1.4.0 |
等待几分钟后,速率限制服务就会安装完成,并运行起来。