Kafka基础知识

目录

消息队列的两种模式

点对点模式

消费者主动拉取数据,消息收到后清除消息

发布/订阅模式

可以有多个topic主题(浏览、点赞、收藏、评论等)

消费者消费数据之后,不删除数据

每个消费者相互独立,都可以消费到数据

Kafka基础架构

Producer:生产者,用来对接外部传入的数据

Topic:主题,存储数据

Consumer:消费者,用来消费Kafka的数据

zookeeper:记录哪些服务器上线,还会记录每个分区谁是leader,Kafka2.8.0以后也可以配置不采用zk

为方便扩展,并提高吞量,一个topic分为多个partition

配合分区的设计,提出消费者组的概念,组内每个消费者并行消费

为提高可用性,为每个partition增加若干副本,类似NameNode HA,这里的副本分为leader和follower,生产和消费只针对leader,当leader挂掉,follower有条件成为新的leader

Kafka启动

先启动zookeeper

bash 复制代码
zkServer.sh start

启动kafka

bash 复制代码
kafka-server-start.sh -daemon  /usr/local/soft/kafka/config/server.properties

Kafka启动停止脚本

bash 复制代码
#!/bin/bash

case $1 in
"start")
	for i in master slave1 slave2
	do
		echo "--- 启动 $i kafka ---"
		ssh $i "/usr/local/soft/kafka/bin/kafka-server-start.sh -daemon /usr/local/soft/kafka/config/server.properties"
	done
;;
"stop")
	for i in master slave1 slave2
	do
		echo "--- 停止 $i kafka ---"
		ssh $i "/usr/local/soft/kafka/bin/kafka-server-stop.sh"
	done
;;
esac

启动Kafka

关闭Kafka

Kafka停止需要一点时间,并没有立马停止

注意:由于Kafka存储信息在Zookeeper中,要等Kafka完全关闭后再停止ZooKeeper,否则需要kill停止Kafka