【问题标题】:Understanding NATS clustering了解 NATS 集群
【发布时间】:2018-06-25 21:34:16
【问题描述】:

NATS Server Clustering 部分指出:

请注意,NATS 集群服务器的转发限制为一跳。 这意味着每个 gnatsd 实例只会转发那些 它已从客户端接收到紧邻的 gnatsd 它具有路由的实例。从路由收到的消息将 仅分发给本地客户。因此一个全网状集群, 或完整的图表,建议 NATS 按预期运行,并且 如整个文档所述。

假设我有一个由 3 个节点组成的 NATS 集群:A -> B -> C(-> 表示路由)。请告诉我在以下情况下 NATS 客户端会发生什么:

  • 发送到节点 A 的消息
  • 节点 A 在将消息传递给节点 B 之前突然终止

提前致谢

【问题讨论】:

    标签: nats.io


    【解决方案1】:

    在您描述的情况下,该消息将被丢弃。

    Core NATS 提供“最多一次”的传递保证,因此如果您不能容忍丢失的消息,您的应用程序需要检测到消息从未到达其目的地并重新发送消息。您可以使用请求/回复模式从超时中检测到这一点,或者针对丢失的消息实施您自己的补救类型。

    或者,您可以使用 NATS 流,它提供基于日志的持久性并位于 NATS 之上。它将保证消息将“至少传递一次”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-21
      • 2019-01-01
      • 2020-02-02
      • 2020-09-27
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 2019-03-06
      相关资源
      最近更新 更多