Kafka 安装部署
消息队列
传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信。

kafka shell 基础
https://www.jianshu.com/p/de3823b538d2
https://blog.csdn.net/kobeyu652453/article/details/130048405
https://blog.csdn.net/JENREY/article/details/86509121
https://blog.51cto.com/u_11239407/5441763
[1]B站:layui框架精讲全套视频教程
[2]https://layui.gitee.io/v2/docs/
[3]https://layui.gitee.io/v2/demo/
[4]https://github.com/layui/layui/
[5]https://www.pmcaff.com/answer/1348084543479872
https://zhuanlan.zhihu.com/p/591834934
https://www.jianshu.com/p/08bcb182bdac
alias ll
alias ll='ls -alF --color=auto'
/opt/bitnami/kafka/config/server.properties
docker cp f704d3d3fbcc:/opt/bitnami/kafka/config/server.properties .
104 # The minimum age of a log file to be eligible for deletion due to age
105 log.retention.hours=168
使用命令修改某一个topic的数据保留时间,使用给了kafkaadmin权限的用户在客户端认证后执行如下的命令修改:
kafka-configs.sh --alter --zookeeper 192.168.X.X:24002/kafka --entity-type topics --entity-name test1 --add-config retention.ms=864000000
kafka-configs.sh --describe --zookeeper 192.168.X.X:24002/kafka
最后的时间单位为毫秒。修改后立刻生效,不用重启服务。
kafka-topics.sh --version
docker exec -it f704d3d /bin/bash
kafka-3.2.0
kafka-topics.sh --list --bootstrap-server 192.168.31.71:9092
kafka-topics.sh --list --bootstrap-server 192.168.33.22:9092
kafka-topics.sh --bootstrap-server 192.168.33.22:9092 --describe --topic test-k1
kafka-configs.sh --bootstrap-server 192.168.33.22:9092 --alter --entity-name test-k1 --entity-type topics --add-config retention.ms=86400000
86400000 毫秒=1天
172800000毫秒=2天
259200000毫秒=3天
毫秒计算器可以访问下面的地址,由abcdocker维护
https://tool.i4t.cn/calctime/
基础架构

(1)Producer:消息生产者,就是向Kafka broker发消息的客户端。
(2)Consumer:消息消费者,向Kafka broker取消息的客户端。
(3)Consumer Group(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
(4)Broker:一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
(5)Topic:可以理解为一个队列,生产者和消费者面向的都是一个topic。
(6)Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。
(7)Replica:副本。一个topic的每个分区都有若干个副本,一个Leader和若干个Follower。
(8)Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是Leader。
(9)Follower:每个分区多个副本中的“从”,实时从Leader中同步数据,保持和Leader数据的同步。Leader发生故障时,某个Follower会成为新的Leader。
安装部署
官方下载地址:http://kafka.apache.org/downloads.html
# 配置文件
server.properties
`#broker的全局唯一编号,不能重复,只能是数字。
broker.id=0
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘IO的线程数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka运行日志(数据)存放的路径,路径不需要提前创建,kafka自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
log.dirs=/opt/module/kafka/datas
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
# 每个topic创建时的副本数,默认时1个副本
offsets.topic.replication.factor=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#每个segment文件的大小,默认最大1G
log.segment.bytes=1073741824
# 检查过期数据的时间,默认5分钟检查一次是否数据过期
log.retention.check.interval.ms=300000
#配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
kafka/config/server.properties
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
集群启停脚本
vim kf.sh
#! /bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------启动 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------停止 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "
done
};;
esac
注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群。因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。

浙公网安备 33010602011771号