现在我的kafka生产者正在将所有消息下沉到kafka主题的单个分区,该分区实际上有超过1个分区。
如何创建将使用默认分区器并在主题的不同分区之间分发消息的生产者。
我的kafka制作人的代码片段:
Properties props = new Properties();
props.put(ProducerConfig.RETRIES_CONFIG, 0);
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrap.servers);
props.put(ProducerConfig.ACKS_CONFIG, "all");
我正在使用flink kafka生成器来收集关于kafka主题的消息。
speStream.addSink(
new FlinkKafkaProducer011(kafkaTopicName,
new KeyedSerializationSchemaWrapper<>(new SimpleStringSchema()),
props,
FlinkKafkaProducer011.Semantic.EXACTLY_ONCE)
使用默认分区程序,使用以下逻辑为消息分配一个分区:
键控消息:生成密钥的散列并基于该分区被选中。这意味着具有相同密钥的消息将最终出现在同一分区上
unkeyed消息:循环用于分配分区
解释您看到的行为的一个选项是,如果您对所有邮件使用相同的密钥,那么使用默认分区程序,它们将最终位于同一分区上。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。