kafka服务宕机,会影响现有的服务。导致现有业务阻塞

Nirvana 发表于: 2018-05-08   最后更新时间: 2018-05-08 10:48:17   4,288 游览

问一个关于kafka 1.0.1 版本问题

这边开发的时候碰到一个问题,就是如果kafka服务宕机,会影响现有的服务。导致现有业务阻塞, 看0.8版本有个producer.type字段可以控制生产者同步异步生产, 但是1.0.1版本这个字段好像取消掉了.如果要避免这个情况[kafka宕机导致阻塞主要业务]该如何操作比较好。谢谢了.

发表于 2018-05-08
添加评论

区别在于 .get();
producer.send(record).get();   // 阻塞
producer.send(record);           // 非阻塞

当集群故障,阻塞等待,非阻塞丢失。建议增加异常逻辑,来处理这个情况

半兽人 -> 半兽人 6年前

https://www.orchome.com/303
可以参考生产者API。

Nirvana -> 半兽人 6年前

奇怪的就是我这边producer.send(message), 并没有 get(); 但是还是会提示超时哦。
执行代码: getTheProducer().send(producerRecord, new Callback())  
超时日志: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 10000 ms.  上面是我测试的日志内容 

半兽人 -> Nirvana 6年前

那是不阻塞,只是提示报错。

Nirvana -> 半兽人 6年前

但是上面加入队列的代码确实在10000ms 内阻断了我后面代码的执行。

半兽人 -> Nirvana 6年前

后面代码?new Callback()删除掉。

你的答案

查看kafka相关的其他问题或提一个您自己的问题