java面试之-kafka

java面试之-kafka_第1张图片

1.kafka相关概念

kafka-cluster:集群

broker:可以理解为集群中的一个server。

partion:分区

            kafka没有主从节点的概念,是通过分区来保证kafka的高并发特性。

topic:路由(用户指定)

            与其他消息机制中的topic机制类似

producer:生产者

             生产者发送消息时可以指定发送到特定的分区

consumer:消费者

             * kafka不容易理解的地方在于消费者和副本,消费者的上层有个消费者组。

             * 同一个消费者组中的消费者只能接收同一个分区的消息:

                       1.topic相同的多个消费者,只有一个消费者能接收到消息

                       2.不同topic的消费者,都可以接收到消息,但是每个消费者接收消息的分区始终是对应topic下多个分区中的一个

              * 不同消费者组中的消费者接收来自不同分区的消息:

                        1.分区个数大于消费者组的个数,某个消费者组中将接收到更多的消息。

                        2.分区个数小于消费者个数个数,某个消费者组中将接收不到消息。

              * partion的个数通常<= 消费者组的个数。

replica_factor:副本

               kafka通过对分区进行备份机制保证高可用性,即每个分区都会有一个leader副本,和多个follower副本,他们均匀分布在各个broker上,一旦leader所在broker宕机,其他broker就会根据follower副本重新选举出leader副本。

               leader副本负责与producer和consumer交互。

2.springboot中使用kafka

*springboot配置文件中提供了常用的kafka配置项。

*生产者KafkaTemplate

*消费者@KafkaListener使用在bean的方法上,则该方法会被kafka监听

你可能感兴趣的:(java面试之-kafka)