kafka消息无法正常消费,且报异常:java.lang.IllegalArgumentException: Path must not end with / character

背景

昨天同事在重启消费者进程后,导致后台消息无法正常消费,看日志,有报数据库的异常:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;另外偶尔还有kafka异常:java.lang.IllegalArgumentException: Path must not end with / character。同时,发现一个奇怪的地方,有个info级别的日志,说明spring关闭了bean的销毁方法:INFO [main] org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(444)。同时看zookeeper上的消费者,发现有部分topic下的消费者没有注册。

在一番折腾后,将代码回滚到上一版本,临时解决了问题。

总结

今天重点分析了下日志,发现引起问题有如下几个原因:

1、目前消费者程序中注册消费者都是在bean初始化时进行的,当创建stream时,因为有个新建的consumer对应的topic名为空,导致创建抛出了异常。该异常信息为java.lang.IllegalArgumentException: Path must not end with / character。但因为该信息被spring容器吃掉了,所以在日志中没有任何体现。spring发现异常后,会调用DefaultSingletonBeanRegistry.destroySingletons来关闭bean实例。在配置文件里,数据库连接池、以及部分consumer会在消费bean实例时,释放资源。

下面代码,因为topic名为空&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值