我非常罕见地要求将SNS主题消息传递给所有的微服务实例。
基本上,这是一种通知,相关数据发生了变化
所有的微服务实例都应该从数据源重新加载它们的内部。
我们使用TerraForm来创建我们的基础设施,使用江港api网关。
随着系统负载的增加,可以创建“动态”的微服务实例,因此在TerraForm阶段无法创建对主题的订阅。
微服务是标准的SpringBoot应用程序。
我的第一个方法是
我的问题是确定单独的微服务实例urls,这些urls可以用于订阅过程。
另一种方法是使用SQS,在每个微型srv实例中创建SQS队列(订阅sns)。
,也许我在概念层面上做错了?
可能需要不同的体系结构方法?
发布于 2020-09-23 11:02:01
对于微服务来说,检查亚马逊S3中的一个对象以“拉动”配置更新(或者至少调用HeadObject来检查配置是否已经更改)可能更容易一些,而不是试图将配置更新“推送”到所有服务器。
或者,使用AWS系统经理参数库并让服务器将凭证缓存一段时间(例如5分钟),这样它们就不会总是检查配置。
发布于 2022-11-23 07:04:41
现在有点老了,但我的解决办法是:
创建SNS,使用SQS订阅,将SQS发布到redis pub/sub,订阅pub/sub
现在,您的所有实例都将得到该事件。
https://stackoverflow.com/questions/64023795
复制相似问题