kafka的架构
product:生产者,就是生产东西的
consumer:消费者,就是消费东西的
broker:就是放生产者生产出来东西的篮子
topic:主题,就是将将生产出来的东西打个标签
kafka的安装
kafka下载地址:http://kafka.apache.org/downloads
安装步骤如下:
1.解压文件:.tar -zxvf kafka_2.11-1.0.0.tgz
2.将文件重命名:mv kafka_2.12-0.11.0.0 kafka
3.修改配置文件:vi ./kafka/config/server.properties
修改内容如下:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/opt/hadoop/data/kafka-logs
zookeeper.connect=zoo3:2181
4.在系统环境中配置kafka的路径:vi /etc/profile
export KAFKA_HOME=/opt/kafka
export PATH=$KAFKA_HOME/bin:$PATH
5.使修改完的环境变量生效:source /etc/profile
kafka的部署
kafka单节点单broker的部署
说明如下:这些命令是在opt/kafka/bin下执行。
注意事项:kafka是依赖zookeeper运行的,因此,在启动kafka之前要先启动。
zookeeper,zookeeper安装及启动见如下博客:
https://blog.csdn.net/qq_35086052/article/details/80929527
- 以后台进程方式启动kafka
./kafka-server-start.sh -daemon /opt/kafka/config/server.properties
- 创建topic
./kafka-topics.sh --create --zookeeper zoo3:2181 --replication-factor 1 --partitions 1 --topic test
- 查看所有topic
./kafka-topics.sh --list --zookeeper zoo3:2181
- 发送消息
./kafka-console-producer.sh --broker-list zoo3:9092 --topic test
- 消费消息
./kafka-console-consumer.sh --zookeeper zoo3:2181 --topic test --from-beginning
kafka多节点单broker的部署
1.复制多个副本配置文件,修改配置文件
cp server.properties server-1.properties
cp server.properties server-2.properties
cp server.properties server-3.properties
修改内容如下:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/opt/hadoop/data/kafka-logs-1
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/opt/hadoop/data/kafka-logs-2
broker.id=3
listeners=PLAINTEXT://:9095
log.dirs=/opt/hadoop/data/kafka-logs-3
2.启动多个节点
./kafka-server-start.sh -daemon /opt/kafka/config/server-1.properties
./kafka-server-start.sh -daemon /opt/kafka/config/server-2.properties
./kafka-server-start.sh -daemon /opt/kafka/config/server-3.properties
3.创建3个副本的topic
./kafka-topics.sh --create --zookeeper zoo3:2181 --replication-factor 3 --partitions 1 --topic test1
4.发送消息
./kafka-console-producer.sh --broker-list zoo3:9093 --topic test1
./kafka-console-producer.sh --broker-list zoo3:9094 --topic test1
./kafka-console-producer.sh --broker-list zoo3:9095 --topic test1
5.消费消息
./kafka-console-consumer.sh --zookeeper zoo3:2181 --topic test1 --from-beginning
- 查看所有topic的详细信息
./kafka-topics.sh --describe --zookeeper zoo3:2181 --topic test1
kafka的容错
3个节点正常运行情况:
./kafka-topics.sh --describe --zookeeper zoo3:2181 --topic test1
Topic:test1 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test Partition: 0 Leader: 2 Replicas: 1,2,0 Isr: 1,2,0
杀死其中leader2节点后,1节点成为leader
./kafka-topics.sh --describe --zookeeper zoo3:2181 --topic test1
Topic:test1 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,0
kafka的容错性总结:
在kafka中不管是主节点还是从节点挂了都是一样,只要kafka副本中有一个节点是活的,他就能正常工作。