Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从卡夫卡进行投票时,记录的顺序是否得到保证?_Java_Apache Kafka - Fatal编程技术网

Java 从卡夫卡进行投票时,记录的顺序是否得到保证?

Java 从卡夫卡进行投票时,记录的顺序是否得到保证?,java,apache-kafka,Java,Apache Kafka,我使用ApacheKafka客户端轮询来自Kafka的记录 让我们假设我做了如下事情: org.apache.kafka.clients.consumer.Consumer consumer = ... ... ConsumerRecords<String, String> consumerRecords = consumer.poll(...); List<ConsumerRecord<String, String>> records = consumerR

我使用ApacheKafka客户端轮询来自Kafka的记录

让我们假设我做了如下事情:

org.apache.kafka.clients.consumer.Consumer consumer = ...
...
ConsumerRecords<String, String> consumerRecords = consumer.poll(...);
List<ConsumerRecord<String, String>> records = consumerRecords.records(partition);
org.apache.kafka.clients.consumer.consumer=。。。
...
ConsumerRecords ConsumerRecords=consumer.poll(…);
列表记录=消费者记录。记录(分区);
我的问题是:
记录是否按自然顺序返回?更具体地说,它们是否按
记录
列表中的
偏移量
排序


我在JavaDoc中找不到有关此属性的任何特定内容。

轮询意味着记录将异步返回。您不保证有任何订单,但处理订单的顺序除外


如果需要对
列表进行排序
,则可以使用任何
可比较的
函数,以便在流完成后对其进行排序。

查看源代码,似乎可以保留分区内记录的顺序。记录存储在
数组列表中,并使用偏移量获取


另请参见

中的答案,这是我对异步、基于事件的处理以及向流中添加事件的理解。什么需要加强?Kafka是一种事件流总线,不同的应用程序可以连接到该总线进行消息传递。无法保证有人连接到消息总线。您无法知道它们何时将发出事件。你不知道他们都在做什么,也不知道他们的过程需要多长时间。我建议你改进你的问题。如果只有一个分区,投票顺序有保证吗?根据上面答案中的链接,是的。在我看来你是对的,因为我不能复制一个不正确的顺序