我有一个进程,需要将某些数据分派到由3个节点组成的flink集群(通过kafka)。据我所知,总共会有两个不同的主题。所有的消息都会有时间戳。消息顺序必须保持不变。
我不能理解消息分区(键)背后的机制。如果我希望拥有如上所述的简单消息分派器,消息分区重要吗?如果是这样,我应该根据什么来选择它?
发布于 2018-09-11 01:45:09
不清楚你需要什么排序(通过一些UUID,产生数据的服务器,一些其他事件类型,等等),但是Kafka消息排序只保证在任何主题的分区内,并且包括Flink在内的任何Kafka消费者都保证按顺序读取它分配的分区。
如果指定了密钥,则返回The default Kafka partitioner by the producer will use a Murmur2 hash algorithm。如果你有一个空键,那么它将均匀地轮询所有的分区。
上次我检查的时候,Flink producer会覆盖这个行为。参见。如果你只将Flink作为消费者使用,那么你不需要担心这一点。
消息默认以Kafka为时间戳
https://stackoverflow.com/questions/52261515
复制相似问题