Spring Kafka是Acknowledgement.acknowledge线程安全吗?

时间:2017-12-05 11:34:56

标签: spring apache-kafka spring-kafka

我正在实现一个基于kafka的应用程序,我想手动确认收到的消息。架构迫使我在一个单独的线程中完成它。

问题是:在与消费者不同的线程中执行Acknowledgement.acknowledge()是否可行且安全?

1 个答案:

答案 0 :(得分:1)

是的,只要您使用MANUAL而不是MANUAL_IMMEDIATE,但我认为您不会得到您期望的结果。

Kafka不会跟踪每条消息,只会跟踪分区内的偏移量。

让我们说消息1到达,然后你交给另一个线程。然后消息2到达并且它被传递给另一个线程。

当消息2的偏移量被确认时,您实际上正在对这两个消息进行处理。