1、问题描述:
The configured groupId is invalid
字面意思,kafka消费者配置的 groupId 非法,这玩意还有不合法?无非是没指定 groupId 吧? —— 当然不是,如果是因为没有写 groupId 而引起这个问题,那根本不值得去写一编日志了。
groupId 当然是指定的,但为什么还是报了这个错误呢。。。其实原因是没有找到的,但有一个可用版本,一个不可用版本,于是猜测其中可能的原因?
2、问题背景
springboot: 1.5.7.RELEASE (有够老的对不对,老项目,没办法。。。这也是这个项目让人头疼的原因)
springcloud: Dalston.SR3
spring-kafka: springboot 指定版本, 好像是 1.1.6.RELEASE
3、逐渐找原因
这个是项目上出现的问题,在整合springboot + kafka 之前,我做过另外一个demo, 好用得很。但放到项目上的时候,就出现了水土不服的各种情况就出现了,真的超级多问题,以至于我觉得kafka就是一个坑,为什么还会有人用kafka,其它MQ产品,它不香吗,也不用依赖ZK,用kafka,图什么。。害。(会有这样的疑惑,并且没办法解决,也是因为我对kafka和其它的MQ产品没有一个比较好的横向比较)
说回正题
为什么一个好一个不行呢,差别在哪里,差别就在于一个是 springboot 2.3.5.RELEASE, 一个是 springboot 1.x 。 这可能就是区别!
淦
真是一个让人极度无语的“事故”, 多少问题源于版本不匹配,各种搞来搞去,真的是烦死人。
好了,那既然知道是版本引起的差异,就在 demo 上把版本降下来吧,好嘛,问题果然出现了——版本不兼容,写法可能也不同。
4、写法不同,那就改写法
网上查了一下, springboot 1.x 整合kafka 的写法,嗯,果然不一样
springboot 1.x 是需要写 kafkaProducerConfig 和 kafkaConsumerConfig 的。它能够读取到配置,但不知道为啥还报这个错(可能得跟一下代码才行,虽然现在并没有这样的心情)。
OK, 那就按他的写法来写了。发现,竟然可以了,淦。
5、剩余的问题
问题还没有被完全解决,一个是配置都写在代码上了,所以,肯定还得写一个配置项,去读取配置才行。
KafkaConfig 读取配置,这样应该就差不多了
然后,纯配置文件的写法,为什么没读取到。这个问题,还得找找,跟一下源码才行
这个问题先这样子。