0

据我所知,当 Spring Cloud Config Server 配置更改时,可以通过 Spring Cloud Bus 在微服务之间传播刷新事件。然后,这会触发通知的微服务从 Spring Cloud Config Server 拉取最新配置。

这种方法是否可以很好地扩展?我的意思是我们可以拥有 1000 个微服务实例,如果某些全局配置发生更改,那么所有这 1000 个微服务将同时尝试从配置服务器获取配置。这不是潜在地意味着超载和崩溃吗?

4

1 回答 1

1

此问题的解决方案可能是对 Spring Cloud Configuration Server 的请求实施一些速率限制策略。

限速策略强制每单位时间只处理有限数量的请求,从而保护您的应用程序免受资源耗尽。此处详细介绍了此政策及其风格的更全面说明。

对于这种特殊情况,您可以通过添加速率限制器过滤器来限制对 Spring Cloud 配置服务器的请求。您可以将过滤器添加到 Spring Cloud 配置服务器,就像添加任何其他 Spring 应用程序一样。这篇文章提供了一个如何应用安全过滤器的示例 - 您可以使用速率限制器过滤器执行类似的操作。

如果您的 Spring Cloud Configuration Server 在某些反向代理服务器(例如NginxApache )后面运行,您可以在反向代理上配置限速策略。

于 2020-12-11T21:49:17.853 回答