请选择 进入手机版 | 继续访问电脑版

kafka集群 + manager监控

[复制链接]
余峻 发表于 2020-12-31 20:22:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Kafka基本原理详解(超详细):https://blog.csdn.net/weixin_45366499/article/details/106943229
 
什么是kafka

kafka是一个分布式、流数据处理系统。可以作为消息中心,但经典的应用场景还是应用服务的数据收集,大型网站用户欣赏登录等一系列动作操纵流数据的收集,共同ELK做数据、日志收集分析处理。以及搭配hadoop大数据使用。
 
1. 情况准备

zookeeper集群安装可参考:https://blog.csdn.net/yuanlaijike/article/details/79916792
提前安装zk集群 主机名IP说明master192.168.56.104zk flower节点slave1192.168.56.102zk master节点slave2192.168.56.105zk flower节点情况版本 项说明服务器centos7kafka2.7.0kafka集群至少准备3台呆板 主机名IP说明master192.168.56.104kafka节点1slave1192.168.56.102kafka节点2slave2192.168.56.105kafka节点3 
关闭防火墙

  1. $ systemctl stop firewalld    #关闭防火墙$ systemctl disable firewalld    #克制开机启动
复制代码
 

2. 下载&安装

准备安装目次
  1. [root@master local]# pwd/root/local$ mkdir kafka    #新建应用目次$ mkdir kafka/logs    #消息存储目次$ chmod 777 -R kafka/    #授予所有人权限
复制代码
github当前最新版本是2.7.0
  1. # 下载2.7.0安装包$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz# 解压到安装目次$ tar -zxvf kafka_2.13-2.7.0.tgz -C /root/local/kafka
复制代码
 

3. 修改设置

  1. $ cd kafka/kafka_2.13-2.7.0$ vim config/server.properties
复制代码
通用设置
  1. #kafka会留存所有消息,存放到每个分区下的segment目次下的.log文件中。这个log目次就是kafka的数据目次。可设置多个,逗号分隔log.dirs=/root/local/kafka/logs# zookeeper集群设置zookeeper.connect=192.168.56.104:2181,192.168.56.102:2181,192.168.56.105:2181
复制代码
分节点设置broker.id,必须包管每个节点的id唯一:
kafka节点1
  1. broker.id=0
复制代码
kafka节点2
  1. broker.id=1
复制代码
kafka节点3
  1. broker.id=2
复制代码
 

修改启动脚本,vim bin/kafka-server-start.sh:

调小内存消耗,-XX:ParallelGCThreads=1设置核数(我虚拟机是1核),否则启动后使用kafka下令时总会告警。我们提前修改就省得待会再改再重启了,告警如下:

 
4. 启动

  1. # 用&表现背景启动$ ./bin/kafka-server-start.sh config/server.properties &
复制代码
启动乐成后控制台有如下输出。

3台呆板分别启动以后,集群搭建完成。我们继续看一下kafka集群在zookeeper的注册目次:
  1. # 进入zookeeper集群任一节点安装目次,执行下令进入客户端$ ./zkCli.sh# 检察根目次$ ls /
复制代码
可以发现,除了zookeeper这个目次是zk集群注册添加的,其他目次都是kafka集群注册的。

 
5. 使用下令行操纵kafka

请注意:以下下令行中 --bootstrap-server master:9092 效果等同于 --zookeeper master:2181,指定kafka server大概注册中心其一且只能指定其一。如果这两个参数同时指定还会报错。
 
5.1 创建topic
  1. $ ./kafka-topics.sh --create --bootstrap-server master:9092 --partitions 3 --replication-factor 1 --topic esign-service    # topic默认是1个分区1个副本;现指定3个分区,每个分区创建1个副本备份
复制代码
效果:指定多个分区后,分区随机散落在broker节点的数据目次。如果是1个分区,会随机放在某一borker的kafka数据目次下。这个数据目次就是我们刚才设置过的“log.dirs”。看下图,我们刚才创建的topic=esign-service,指定了3个分区,那这3个分区就是esign-service-0, esign-service-1, esign-service-2。这3个文件夹分别分布在3个kafka节点的数据目次中。

 
5.2 检察topic列表
  1. $ ./kafka-topics.sh -bootstrap-server master:9092 --list
复制代码
 
5.3 检察topic详情
  1. $ ./kafka-topics.sh --bootstrap-server master:9092 --describe --topic esign-service
复制代码
 
5.4 向topic发送消息
  1. $ ./kafka-console-producer.sh --bootstrap-server master:9092 --topic esign-service
复制代码
 
5.5 消费消息
  1. $ ./kafka-console-consumer.sh --bootstrap-server master:9092 --topic esign-service --from-beginning    #能收到之前的消息,且能一连监听
复制代码
 
5.6 指定消费者组,消费topic。可以打开多个下令窗口,共同执行以下下令;再起一个非消费者组的消费者。
  1. $ ./kafka-console-consumer.sh --bootstrap-server master:9092 --topic esign-service --group service_group
复制代码
测试效果:消费者组共同消费同一个topic,消息被组内成员随机消费。但并不影响消费者组外消费者消费全部消息。
 
5.7 检察消费者组列表
  1. $ ./kafka-consumer-groups.sh --bootstrap-server master:9092 --list
复制代码
 
5.8 检察消费者组在topic分区内的偏移量
  1. $ ./kafka-consumer-groups.sh --bootstrap-server master:9092 --describe --group service_group
复制代码
执行效果如下:

  • 可以看到基于订阅发布模式,为什么topic分区内的只能被组内成员之一消费。因为相对于这个组来说,任一成员消费后。该组在topic详细分区内的偏移量都在变革。其他组内成员再来取消息,也只能是没被消费过的消息。

 
5.9 解码检察分区内数据文件明文,注意替换自己的数据文件目次
  1. $ ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /root/local/kafka/logs/esign-service-1/00000000000000000000.log  --print-data-log
复制代码
执行效果如下:

 
5.10 检察分区下的索引文件
  1. $ ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /root/local/kafka/logs/esign-service-1/00000000000000000000.index
复制代码
 
6. 使用Docker安装kafka监控软件

 
拉取镜像
  1. $ docker pull sheepkiller/kafka-manager
复制代码
启动容器
  1. $ docker run -d -p 9000:9000 --name kafka-manager -e ZK_HOSTS=192.168.56.104:2181 sheepkiller/kafka-manager
复制代码
 
访问 ip:9000,添加kafka集群


 
设置完成后就可以登录集群了

 
测试一下动态添加分区


继续添加分区,详情:

点击添加。我们不需要任何下令,就可以在kafka服务器(1-slave1,即192.168.56.102)上看到有日志输出,效果如下:

我们再检察一下这台有日志输出的,kafka数据目次下的内容,可以看到。对topic=test,已经添加了第3个分区文件夹。名为test-2。


来源:https://blog.csdn.net/m0_37606574/article/details/111952708
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )