kafak详解

参考文档:https://kafka.apachecn.org/intro.html

分区 (Partition)

1.卡夫卡默认分区在server.properties

可以自己设置。
kafak详解_第1张图片

2.kafkaTemplate 发送分区的依据

如下图所示,kafka会根据该key的hash值,将他分配的到响应的分区中。
分配的计算公式 分区号=key.hashCode()%分区数
kafak详解_第2张图片

3.设置消费分区

配置消费0,3分区。里面的配置一个不能少

@KafkaListener(topics = "jm-topic-log",topicPartitions = {
     
            @TopicPartition(topic = "jm-topic-log",partitions = {
     "0","3"})
    })

4.批处理

	@KafkaListener(topics = "你的topic", containerFactory = "kafkaListenerContainerFactory", topicPartitions = {
     
				@TopicPartition(partitions = {
     "0","1"}, topic = "你的topic") })
	    public  void  message(List<ConsumerRecord<String, Object>> records,Acknowledgment ack){
     
                    if (!records.isEmpty()) {
     
			for (ConsumerRecord<String, Object> record : records) {
     
				if(null!=record&&record.serializedValueSize()!=-1) {
     
                        //业务代码
				}
			}
		}  
	  }

配置文件,添加如下配置。

max-poll-records: 100

5.创建topic

让我们创建一个名为“test”的topic,它有一个分区和一个副本:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

现在我们可以运行list(列表)命令来查看这个topic:

bin/kafka-topics.sh --list --zookeeper localhost:2181

kafak详解_第3张图片

你可能感兴趣的:(并发编程,kafka)