Apache Camel 4.4 SFTP消费者健康检查探针失败问题求助
解决Camel 4.4中SFTP路由健康检查探针失败问题
问题背景
我有一条简化后的SFTP路由:
from("sftp://servername:22?username=username&password=password&preferredAuthentications=password")
pom.xml依赖如下:
<dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-ftp-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
该路由在Camel 2.x版本中可正常运行,但在Camel 4.4(Red Hat Camel 4.4构建版本)中出现健康检查探针失败错误:
Probe in group 'camel', with id 'consumer:route3' failed with message 'Consumer has not yet polled route
解决方案
1. 延长第一次轮询的等待超时
Camel 4.x对消费者健康检查的默认逻辑更严格,默认情况下如果消费者启动后未完成第一次轮询,健康探针直接判定失败。可以通过配置延长等待时间:
在application.properties中添加:
management.health.camel.consumer.max-wait-time=5000
或者application.yml:
management: health: camel: consumer: max-wait-time: 5000
(单位:毫秒,示例设置为5秒,可根据实际轮询间隔调整)
2. 禁用该SFTP消费者的健康检查
如果这条路由的轮询间隔很长(比如数小时一次),没必要因为未轮询影响整体健康状态,可在路由URI中直接关闭健康检查:
from("sftp://servername:22?username=username&password=password&preferredAuthentications=password&healthCheckEnabled=false")
3. 修正配置并验证SFTP连接
先检查原路由URI的语法错误(原代码末尾缺少闭合引号),然后确认SFTP连接是否正常:
- 核对服务器地址、端口、账号密码的正确性
- 开启Camel DEBUG日志,查看连接初始化过程,排查是否有隐藏的连接失败问题
4. 全局调整消费者健康检查策略
如果需要统一关闭所有消费者的健康检查(仅在必要时使用):
management.health.camel.consumer.enabled=false
内容的提问来源于stack exchange,提问作者Vinnie Romano
相关产品推荐
相关产品推荐

