【问题标题】:RabbitMQ - Best practices to manage failovers at the publishers sideRabbitMQ - 在发布者端管理故障转移的最佳实践
【发布时间】:2014-03-17 15:48:59
【问题描述】:

我要管理的主要场景是发布者连接不活动时。 要么是一秒钟,要么是因为集群宕机了。

RabbitMQ(客户端)有哪些选项可以帮助我管理这种情况?

  1. 他可以积累消息吗?
  2. 他可以管理重试吗?

问题的第二部分是关于管理故障转移本身。 我知道在某些数据库中我可以编写如下连接字符串

   Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;

如果操作失败,客户端会自动切换到同一操作中的另一个。

  1. 在发布者端管理故障转移的最佳实践是什么? 我在我的环境中安装了 Netflix/eureka,我可以激活下一个,但 rabbitmq 是否支持这种情况?

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    如果您在 JVM 上,您可以使用 Lyra 从集群/服务器中断中恢复,并在恢复完成后重试发布尝试(同时阻塞)。

    创建支持调用重试的可恢复连接:

    Config config = new Config()
        .withRecoveryPolicy(RecoveryPolicies.recoverAlways())
        .withRetryPolicy(new RetryPolicy().withMaxAttempts(3)));
    Connection c = Connections.create(new ConnectionOptions().withHost("localhost"), config);
    

    有关更多信息/示例,请参阅Lyra 主页。

    【讨论】:

    • 遗憾的是,Lyra 根本没有 Publisher 方面的文档
    • @rails Lyra 不区分发布者或消费者渠道。它恢复任何失败的通道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多