Skip to main content

One post tagged with "IOC"

View All Tags

· One min read
jeesk

由于kafka 的分区是物理隔离,所有只有让分区保持顺序消费。在我们的广告业务中一般情况下是让某个广告位下面的数据保持分区一致性即可。

  1. 指定partitionKey , 并且一个partition一个消费者线程
kafkaProducer.send(new ProducerRecord<>("fad-service-show", 1,id + "", id + ""));

这里的第一个参数是topic, 第二个参数是partion. 上面的消息将会分发到 fad-service-show-1 的partition中去, 在kafka consumer 的

        for (int i = 0; i < 8; i++) {
listTP.add(new TopicPartition("fad-service-show", i));
}
consumer.assign(listTP);

上面的consumer 可以指定订阅consumer的partition. 2. broker 宕机后, partition的数量不会减少, 也不会影响partitionKey的sharding. 所以说, 如果说如果一个topic , n个partition, 使用顺序消费直接指定partition即可.