在 Spring Cloud 配置更新中重新加载 CamelContext 或路由
Posted
技术标签:
【中文标题】在 Spring Cloud 配置更新中重新加载 CamelContext 或路由【英文标题】:Reload CamelContext or routes on spring cloud config update 【发布时间】:2020-07-09 08:56:48 【问题描述】:我正在使用 Camel 3.1.0 和 Spring Boot 2.2.6。我有外部化配置,并且正在使用 Spring Cloud Bus 从 Git 读取配置数据。
当我启动应用程序时,它通过 spring cloud bus 从 git 获取配置(属性),但是当我在 git 上更新配置并调用执行器/总线刷新端点时,spring 中的骆驼路线没有选择更改启动应用程序,虽然我在日志中看到应用程序接收到属性的更新值。
我需要添加什么属性来让 Spring 启动在 Spring Cloud Bus 事件中刷新 Camel 上下文吗?
【问题讨论】:
【参考方案1】:看来 Camel 不支持 Spring Cloud Config 提供的配置重载,也没有添加的计划,写在这里:https://issues.apache.org/jira/browse/CAMEL-13892
在配置更新时,Spring Cloud 会发送一个RefreshScopeRefreshedEvent
事件。您可以添加一些自定义逻辑来监听该事件并显式重新加载 Camel 组件。
【讨论】:
以上是关于在 Spring Cloud 配置更新中重新加载 CamelContext 或路由的主要内容,如果未能解决你的问题,请参考以下文章
使用Spring Cloud Config进行分布式配置:自动重新加载配置
Spring Cloud Kubernetes 不重新加载秘密更改
Spring boot 2.0 消息总线(Spring Cloud Bus) 高可用分布式配置中心 实例