我正在编写一个 apache-camel RabbitMQ 消费者。我想以某种方式对连接问题使用react(即尝试重新连接)。是否可以将 apache-camel 配置为自动重新连接?
如果没有,我怎样才能发现与队列的连接被中断了?我做了以下测试:
我在 Scala 中使用 Camel (通过 akka-camel),但 Java 解决方案可能也可以
最佳答案
对于发生故障时的自动 RabbitMQ 资源恢复(Connections/Channels/Consumers/Queues/Exchanages/Bindings),请查看 Lyra 。用法示例:
Config config = new Config()
.withRecoveryPolicy(new RecoveryPolicy()
.withMaxAttempts(20)
.withInterval(Duration.seconds(1))
.withMaxDuration(Duration.minutes(5)));
ConnectionOptions options = new ConnectionOptions().withHost("localhost");
Connection connection = Connections.create(options, config);
API 的其余部分只是 amqp-client API,除了您的资源在发生故障时自动恢复。
我不确定camel-rabbitmq 的具体情况,但希望有一种方法可以通过Lyra 交换您自己的资源创建。
关于scala - 处理 apache-camel 中的连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134462/