如何处理Apache Camel SFTP的“认证失败次数过多”问题?
Camel SFTP 避免认证失败后重复轮询的配置方案
核心需求
使用错误密码连接SFTP服务器时,Camel默认重试逻辑会导致账号被服务器封禁,需实现仅一次连接尝试,认证失败即终止后续所有轮询。
关键配置调整
针对你提供的现有配置,需做以下修改:
- 修正参数拼写错误:将
maximumReconnectAttemps改为正确的maximumReconnectAttempts - 设置仅一次连接尝试:将
maximumReconnectAttempts=0(该参数控制初始连接失败后的重连次数,设为0则仅尝试一次初始连接) - 添加停止轮询参数:新增
consumer.stopOnError=true,该参数会让SFTP消费者在遇到连接/认证错误时直接停止,不再执行后续轮询 - 保留原有有效参数:
throwExceptionOnConnectionFailed=true(确保连接失败时抛出异常)、disconnect=true(失败后立即断开连接)等
调整后的完整配置
sftp://host/temp/?noop=true&eagerMaxMessagePerPoll=false&maxMessagesPerPoll=1&disconnect=true&delay=120000&streamDownload=true&stepWise=false&maximumReconnectAttempts=0&throwExceptionOnConnectionFailed=true&consumer.bridgeErrorHandler=true&consumer.stopOnError=true
效果说明
- 当使用错误密码时,Camel仅发起一次连接请求,认证失败后立即抛出异常
consumer.stopOnError=true会终止SFTP消费者的轮询调度,不会再触发后续的连接尝试,彻底避免因重复重试导致的账号封禁问题
内容的提问来源于stack exchange,提问作者Raj5198
相关产品推荐
相关产品推荐

