微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通知在 ASG 中运行的所有 EC2 实例

如何解决通知在 ASG 中运行的所有 EC2 实例

我有一个微服务应用程序,它有多个在 ASG 中运行的实例。所有这些应用程序都维护一些内部状态。此应用程序公开 Actuator 端点以刷新其状态。我有一些在本地运行的应用程序。场景是,在某些事件中,我想调用在 AWS 中运行的应用程序的那些 Actuator 端点来刷新它们的状态。问题是,如果我调用 LoadBalanced url,那么调用只会转到一个实例。所以,我正在考虑以下解决方案。

  1. 使用 SQS 并让本地应用程序发布和 AWS 应用程序使用该消息。但这里也只有一个实例会收到消息。
  2. 使用 SNS 但侦听器基于 http/s,因此 URL 将保持不变,因此我认为只有一个实例会收到消息。 (AFAIK)

还有其他解决办法吗?请提出建议。

谢谢

解决方法

使用 SNS 但侦听器基于 http/s,因此 URL 将保持不变,所以我 认为只有一个实例会收到消息。 (AFAIK)

当使用 SNS 时,每个服务器都会订阅 SNS 主题,当每个服务器订阅时,它会向 SNS 提供其直接的 HTTP(s) URL(而不是负载均衡器 URL)。当 SNS 收到一条消息时,它会将其发送到当前订阅的每个服务器。我不确定 SNS 是否会以您的应用程序需要的正确格式向执行器端点提交请求。

,

您可能可以考虑多种解决方案,包括不需要更改代码的解决方案。例如,在您的本地应用程序和包含您的 ASG 的 VPC 之间建立 VPN 连接,这将允许您通过其唯一的私有 IP 地址调用每台机器的刷新端点。

然而,更简单地说,if you're using an AWS Classic ELB or ALB,than repeated calls to the load balancer url should hit each machine running your application if enough calls to the refresh endpoint are made.

虽然这可能不符合您的用例,但如果您必须严格限制每个端点的刷新调用次数为 1 次。您必须对您的软件和负载平衡器的循环行为进行试验。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?