跨多个实例更新Camel上下文

时间:2015-01-26 17:25:03

标签: apache-camel hawtio

我是Camel(和Hawtio)的新手,如果有人可以提供已有的解决方案或我们考虑的哪种解决方案是最合适/最佳的做法,我将不胜感激。

研究

我已经看过负载平衡和群集Camel文档,但它们都不适合我们的情况。我也做了一些谷歌搜索,到目前为止,我发现最接近的是这个讨论:How to update camel properties externally?但我不确定这是否是同一个问题。

我还检查了Hawtio问题(https://github.com/hawtio/hawtio/labels/camel),看看是否已经要求这个要求,但我不相信。

架构

当前系统由在多个VM中部署/复制的旧Web服务组成。负载均衡器位于这些VM的前面,并管理命中它们的请求。

我们的Camel应用程序将部署到遗留应用程序前面和负载均衡器后面的每个VM中的Tomcat实例。 Camel应用程序角色最初用于控制从旧Web服务到新Web服务的迁移。特别是它将允许管理各种A / B测试,其将包括基于有效载荷内容等对遗留系统或新系统的路由请求/响应。每个VM上的Camel应用程序将是相同的。

问题

我们希望能够在运行时更新所有VM上的Camel上下文(并保留它),而不是单独更新每个上下文。

我们已经快速浏览了hawtio,看起来它会给我们运行时更新(并希望持久)但它似乎是一次一个Camel实例(我们可以看到你可以指向多个jolokia代理商。)

理想情况下,我们希望在Hawtio中更新一个上下文,按更新并更新每个VM中运行的所有Camel上下文。据我所知(我们刚刚开始调查),Hawtio目前无法做到这一点。

提议的解决方案

到目前为止一直被认为的解决方案包括: -

  1. 将一个Camel上下文放在一个所有Camel实例指向的交叉安装文件夹中。
  2. 将上下文放在所有Camel实例读取的数据库中。
  3. 创建一个简单的Web客户端(或开发Hawtio Camel插件)以通过Rest / JMX更新多个客户端。
  4. 在Hawtio Camel插件项目中提出问题请求并逃跑。 :)

1 个答案:

答案 0 :(得分:0)

这就是fabric8 / JBoss Fuse可以做到的。它是一个集群就绪的集成平台。因此,您可以在群集(结构)中管理服务器,然后从管理控制台/ shell中管理升级/降级/新安装/等等。

有些视频在

中展示了这一点

例如这一个: