我正在使用 kafka 向消费者发送消息。但是由于某种原因,当我使用 Producer.send(record, new MyProducerCallback()); 向主题发送记录时,该主题的使用者不会收到该记录。但是,当我使用 RecordMetadata m = Producer.send(record).get(); 发送记录时,记录会完美到达消费者。回调方法曾经有效,但现在不再有效。有人遇到过这种情况吗?
最佳答案
您的回调将在后台线程中触发,同时您不会阻塞主线程,因此程序能够结束而不执行它。
如果您想确保回调被调用,您必须
.send().get()
futureThread.sleep()
主线程。
并且不要忘记 close()
Producer 对象
关于java - 为什么 Producer.send(record).get() 有效,但 Producer.send(record, callback) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873413/