我正在开发非OSGI应用程序,我需要更新camel路由中使用的一些属性的值(加载BridgePropertyPlaceHolder)。 所以我想:
使用Cooltio管理控制台Hawtio,使用JMX更新驼峰
创建一个将更新属性的JMX MBean ..
我成功创建了MBean操作并使用JMX调用它们,但我无法弄清楚如何更新依赖于这些属性的camel路由。
有没有办法在外部更新驼峰上下文?
更新 用例的例子:当远程服务器没有返回响应时,我们会一直发送消息,直到达到不成功尝试的最大值(没有确认的消息)。 在camel中,我们根据从文件系统加载的属性创建路由器模式。 这个属性可以偶尔改变,我们希望在不重启服务器的情况下这样做,但问题是在启动上下文时骆驼解析路由,我无法找到相应更新路由的意思。
我很感激任何可能有帮助的建议:)
答案 0 :(得分:0)
对于你希望它们是动态的属性。你可以将这些道具移动到某个数据库并在你阅读时获取它们。我认为你的骆驼路线需要重新设计。
答案 1 :(得分:0)
更改from
端点参数(例如网址等),必须根据dynamic change endpoint camel使用以下程序:
如果to
端点必须是可配置的,则可以使用recipient list组件。在这里,您可以使用适当的Camel组件从数据库和/或文件系统中读取属性。
答案 2 :(得分:0)
如果您使用Camel错误处理重试(重新发送),那么您可以使用retryWhile
继续重试,直到您返回false
。这允许您使用Java代码等,并允许您阅读更新的配置选项。
详情请见
如果您有一本Camel in Action手册,请参阅第152页