我有一个进程需要将一些数据发送到flink集群(通过kafka),由3个节点组成。据我所知,总共会有两个不同的主题。所有消息都将加上时间戳。消息顺序必须保持不变。
我无法理解消息分区(密钥)背后的机制。如果我希望有一个如上所述的简单消息调度程序,消息分区是否重要?如果是这样,根据我应该选择什么?
目前尚不清楚您需要什么样的订单(通过一些UUID,生成数据的服务器,其他一些事件类型等),但Kafka消息排序仅保证在任何主题的分区内,并且任何Kafka消费者(包括Flink)都保证读取其分配按顺序分区。
如果您指定了密钥,生产者的默认Kafka分区将使用Murmur2哈希算法。如果您有一个空键,那么它将均匀地循环所有分区。
Flink生产商上次检查时会覆盖此行为。见FLINK-9610。如果您仅将Flink用作消费者,那么您无需担心这一点。
默认情况下,消息在Kafka中加上时间戳
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。