问一个关于kafka 1.0.1 版本问题 这边开发的时候碰到一个问题,就是如果kafka服务宕机,会影响现有的服务。导致现有业务阻塞, 看0.8版本有个producer.type字段可以控制生产者同步异步生产, 但是1.0.1版本这个字段好像取消掉了.如果要避免这个情况[kafka宕机导致阻塞主要业务]该如何操作比较好。谢谢了.
区别在于 .get();
producer.send(record).get(); // 阻塞
producer.send(record); // 非阻塞
当集群故障,阻塞等待,非阻塞丢失。建议增加异常逻辑,来处理这个情况
https://www.orchome.com/303
可以参考生产者API。
奇怪的就是我这边producer.send(message), 并没有 get(); 但是还是会提示超时哦。
执行代码: getTheProducer().send(producerRecord, new Callback())
超时日志: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 10000 ms. 上面是我测试的日志内容
那是不阻塞,只是提示报错。
但是上面加入队列的代码确实在10000ms 内阻断了我后面代码的执行。
后面代码?new Callback()删除掉。
你的答案