我知道一个主题中的一条消息只能由一个组中的一个使用者使用,在一个使用者组中,每个使用者负责一个或多个分区。如果我有4个分区作为一个主题并获取我使用的数据 env.addSource(FlinkKafkaConsumer).setParallism(4)
,是否会实际创建4个使用者示例?如果没有,当4个消费者共享同一分区时,如何保证消息的顺序?
我知道一个主题中的一条消息只能由一个组中的一个使用者使用,在一个使用者组中,每个使用者负责一个或多个分区。如果我有4个分区作为一个主题并获取我使用的数据 env.addSource(FlinkKafkaConsumer).setParallism(4)
,是否会实际创建4个使用者示例?如果没有,当4个消费者共享同一分区时,如何保证消息的顺序?
1条答案
按热度按时间t30tvxxf1#
对于您的第一个问题:“如果我有4个分区作为一个主题并使用env.addsource(flinkkafkaconsumer).setparallism(4)获取数据,它会实际创建4个consumer示例吗?”
是的,flink将创建4个示例。
对于您的第二个问题:“当4个使用者共享同一分区时,如何确保消息的顺序?”
只有一个消费者将收到消息,其他消费者将无所事事。flink保证按分区排序,您将按顺序接收消息。
更多详情请访问:https://www.ververica.com/blog/kafka-flink-a-practical-how-to