乡村旅游网站建设,多人运动免费正能量网站链接,wordpress模板 免费下载,网站制作自己做#x1f680; 优质资源分享 #x1f680;
学习路线指引#xff08;点击解锁#xff09;知识定位人群定位#x1f9e1; Python实战微信订餐小程序 #x1f9e1;进阶级本课程是python flask微信小程序的完美结合#xff0c;从项目搭建到腾讯云部署上线#xff0c;打造一… 优质资源分享
学习路线指引点击解锁知识定位人群定位 Python实战微信订餐小程序 进阶级本课程是python flask微信小程序的完美结合从项目搭建到腾讯云部署上线打造一个全栈订餐系统。Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统Envoy 可以作为 Sevice Mesh 微服务框架中的代理实现方案Rainbond 内置的微服务框架同样基于 Envoy 实现。本文所描述的全局限速实践也是基于 Envoy 已有的方案所实现。 Envoy 全局限速
尽管分布式熔断器在大多数情况下控制分布式系统中的吞吐量非常有效但有时它的效果并不是很好这时候便需要全局限速。最常见的情况是当大量主机转发到少量主机并且平均请求延迟很短时例如发送给数据库服务器的连接/请求。若目标主机成为备机则下游主机将压垮上游集群。在这种情况下很难对每个下游主机配置足够严格的熔断器使得系统可以平稳运行同时当系统开始出现故障时仍然可以防止级联故障。对于这种情况全局限速是一个很好的解决方案。
Envoy 全局限速方案需要基于一个全局 RLSrate limit service服务实现RLS 被设计为一种为不同类型应用提供不同限速场景的 Go/gRPC 服务。 构建全局限速服务
一种开箱即用的全局限速服务已经被纳入 Rainbond 内置的开源应用商店中用户可以基于以下操作一键安装速率限制服务。
访问内置的开源应用商店 选择左侧的 应用市场 标签页在页面中切换到 开源应用商店 标签页搜索关键词 速率限制** 即可找速率限制服务。 一键安装 点击速率限制服务右侧的 安装 可以进入安装页面填写简单的信息之后点击 确定 即可开始安装页面自动跳转到拓扑视图。 参数说明
选择项说明团队名称用户自建的工作空间以命名空间隔离集群名称选择速率限制服务被部署到哪一个 K8s 集群选择应用选择速率限制服务被部署到哪一个应用应用中包含有若干有关联的组件应用版本选择速率限制服务的版本目前版本为 1.4.0
等待几分钟后速率限制服务就会安装完成并运行起来。 全局限速配置
通过在 Rate-limit-service 组件中编辑配置文件 /data/ratelimit/config/config.yaml可以配置全局限速标准。
默认配置内容如下
domain: limit.common
descriptors:- key: remote\_addressrate\_limit:unit: secondrequests\_per\_unit: 10# Black list IP- key: remote\_addressvalue: 50.0.0.5rate\_limit:unit: secondrequests\_per\_unit: 0
在这一段配置中定义了面向域名 domain 实现每秒允许 10 个请求通过的限速配置。
面向客户端 IP 为 50.0.0.5 的情况则实现每秒允许 0 个请求通过的限速配置用户可以理解为黑名单配置。
更多配置示例可以参见 GitHub - envoyproxy/ratelimit: Go/gRPC service designed to enable generic rate limit scenarios from different types of applications. 引用全局限速服务
需要被限速的服务组件需要满足以下条件
安装并配置 服务综合网络治理插件依赖 Rate-limit-service
Rainbond 通过插件机制扩展业务的运维能力通过安装 服务综合网络治理插件 可以在被限速业务的网络入口处扩展治理能力。服务综合网络治理插件 本质上扩展了 Envoy 能力通过调用 Rate-limit-service 实现全局限速功能。 确保 OPEN_LIMIT(是否开启限流) 选项为 YES LIMIT_DOMAIN(对应限流规则的域名) 与上文中全局限流配置中的 domian 一致。至此完成了被限速服务一侧的配置。 验证
为了验证限速是否生效引入 Locust 压力测试工具向被限速业务不断生成访问请求。 应用默认全局限速策略后被限速业务在 40 RPS 的情况下限制了 74% 左右的总访问数。 被拒绝的访问得到了 429 返回码并提示 Too Many Requests这是服务限速的标准返回模式。 被限速业务所安装的 服务综合网络治理插件 支持动态配置。这意味着在不停止服务的情况下只需要将 OPEN_LIMIT(是否开启限流) 选项为 NO 并更新配置 即可关闭服务限速访问错误数将下降至 0。 全局限速生效于被限速业务的网络入口这意味着无论请求来自 Rainbond 部署的其他微服务组件还是来自网关以外的外部访问其请求都会被限速。 总结
全局限速是一种在突发流量激增场景中保护微服务的有效手段Rainbond 内置的微服务框架支持符合 RLS 规范的 Envoy 服务限速方案。配置起来很简单并且支持动态变更本文中的示例力争以直观的方式为大家展现了全局限速在 Rainbond 体系中的配置实践。