1.kafka拓扑图
kafka是依赖zookeeper集群的,扑图如下,分三层:
1.Producers:消息生产者,push消息给Brokers.发送时根据不同topic选择不同分区(在Broker上)。
2.Brokers:注册在zookeeper节点上。
3.Consumers:消息消费者,从brokers上根据订阅的topic选择不同分区,poll数据,执行消费。
2.名称解释
1.producer:消息生产者,发布消息到 kafka 集群的终端或服务。
2.broker:kafka 集群中包含的服务器。
3.topic:每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。
4.partition:partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。
5.consumer:从 kafka 集群中消费消息的终端或服务。
6.Consumer group:high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。
7.replica:partition 的副本,保障 partition 的高可用。
8.leader:replica 中的一个角色, producer 和 consumer 只跟 leader 交互。
9.follower:replica 中的一个角色,从 leader 中复制数据。
10.controller:kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
11.zookeeper:kafka 通过 zookeeper 来存储集群的 meta 信息。
2.在pom.xml中引用jar包
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
3.kafka配置文件详解
用日志业务举例
kafka:
log:
topic: topic_log
spring:
kafka:
# 以逗号分隔的地址列表,用于建立与Kafka集群的初始连接(kafka 默认的端口号为9092)
bootstrap-servers: 114.116.100.17:9092
producer:
retries: 0
batch-size: 16384
buffer-memory: 33554432
linger: 10
properties:
sasl.mechanism: PLAIN
se