我有 3 个服务器(1 个主服务器,2 个从服务器)。每个都安装了Zookeeper(最新版本)和ActiveMQ“Classic”。 ActiveMQ“Classic”配置为基于 Zookeepers 节点的复制 Level-DB。
现在我想使用 Apache Camel 进行消息路由。
骆驼路线应该位于哪里?我编写了一个 Spring Boot 应用程序,但我想要像 ActiveMQ 那样进行故障转移。
所以我读到了如何将 jar 放入 ActiveMQ lib 目录并设置 XML 配置企业集成模式
另一种方法是使用 Camel 组件
有没有人遇到过这个问题并想分享解决方案?
呃哦,正如评论中提到的,请注意 Level DB 的内容,因为它已已弃用。仅在彻底测试后才使用它!在我们的测试中,它运行得非常好。但是,当级别数据库由于某种原因损坏时,数据就会丢失。 我们永远无法恢复关卡数据库。不太适合生产。
并且甚至不要考虑基于 NFS 的解决方案。 NFS 确实不适合这个,我们在测试中遇到了很多问题。例如,我们经常管理它有多个主人或根本没有主人。所以我们放弃了。
最终我们使用一个普通的单一代理,因为解决主/从或复制设置中的问题的复杂性可能非常高。尽管存在“单点故障”,但我们几乎从未发生过任何计划外停机。
但是,很多人告诉我,经纪人网络可以很好地实现冗余设置。其中至少有一个谈论的是一个非常大的环境。
嗯,这并不是你问题的真正答案,不是吗?
您可以将 Camel 路由放在代理 XML 配置旁边,然后这些路由在 ActiveMQ 进程内运行。 请参阅此处的示例。
如果您想构建一个 SpringBoot 应用程序来运行 Broker,您只需在 Spring 中提供 Camel 上下文即可使用,并且应该可以使用它。