应用场景
缓冲作用!!!
# 队列Queue
一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素(FIFO)。入队、出队。
# 消息队列MQ
消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供生产、消费接口供外部调用做数据的存储和获取。
集群搭建-kafka
- 搭建zookeeper
- kafka下载
- 上传并解压
cd /export/softwares
tar -zxvf kafka_2.12-2.5.0.tgz -C ../servers/
- 重命名
mv kafka_2.12-2.5.0 kafka
- 修改配置
mkdir -p /opt/data/kafka
# 打开 vim server.properties
broker.id=11 # 当前kafka实例的id,必须为整数,一个集群中不可重复
log.dirs=/opt/data/kafka # 生产到kafka数据存储的目录,目录需要手动创建
zookeeper.connect=node01:2181,node02:2181,node03:2181/kafka # kafka数据在zk中的存储目录
- 安装包分发并修改 broker.id 以及 添加kafka 数据存储目录
scp -r /export/servers/kafka/ node02:$PWD
scp -r /export/servers/kafka/ node03:$PWD
- 修改配置文件中的 broker.id
broker.id=12
broker.id=13
kafka 操作
cd /export/servers/kafka/bin
# 运行 kafka 服务
kafka-server-start.sh ../config/server.properties &
# 创建主题(指定分区和副本数量)
kafka-topics.sh --zookeeper node01:2181 --create --replication-factor 1 --partitions 1 --topic testBB
# 修改topic
kafka-topics.sh --zookeeper node01:2181 --alter --topic covid19_wz --partitions 3
# 列出所有主题
# bin/kafka-topics.sh --zookeeper node01:2181 --list
# 查看主题详情
[root@192 kafka_2.12-2.2.1]# bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic testAA
# 删除主题
kafka-topics.sh --delete --zookeeper node01:2181 --topic testBB
# 启动消费端接收消息
bin/kafka-console-consumer.sh --bootstrap-server node01:9092 --topic testBB
--bootstrap-server 指定了连接kafka集群的地址
--topic 指定了发送消息时的主题
# 启动生产端发布消息
# 发布消息
bin/kafka-console-producer.sh --broker-list node01:9092 --topic testAA
--broker-list 指定了连接kafka集群的地址
--topic 指定了发送消息时的主题