开发者社区> 问答> 正文

Kafka制作人使用默认分区

现在我的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)

展开
收起
社区小助手 2018-12-11 16:05:54 1937 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    使用默认分区程序,使用以下逻辑为消息分配一个分区:

    键控消息:生成密钥的散列并基于该分区被选中。这意味着具有相同密钥的消息将最终出现在同一分区上

    unkeyed消息:循环用于分配分区

    解释您看到的行为的一个选项是,如果您对所有邮件使用相同的密钥,那么使用默认分区程序,它们将最终位于同一分区上。

    2019-07-17 23:19:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载