当前位置 博文首页 > 文章内容

    KAFKA简介和安装 简单又详细(附带命令注释和测试方法)

    作者: 栏目:未分类 时间:2020-09-28 18:00:33

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    Kafka是一个分布式的消息队列,具体如下图,他需要zookeeper来管理一下,所以在安装kafka前我们要先安装zookeeper,一般kafka安装包中都会自带一个简单版的zookeeper。

     

    zookeep负责管理分布式的存储模块,broke、topic、consumer都会在zookeep中注册。

    Kafka架构图:

     

    这块看网上的图和文字真的看不懂,建议在b站找个视频讲解15分钟就搞懂了。

     

    kafka的主要特征,解耦(大概是扩展性强)、削峰(缓解数据峰值时候的压力)

    分为两种模式 点对点模式和发布订阅模式

    发布订阅模式中也分为两种,一种是producer主动推信息,一种是consumer主动拉取信息(拉取信息需要消费者执行一个拉取的轮训,即便没有消息也要执行轮训)

     

    zookeeper的作用

    帮助kafka存储一些数据,记录消费职位,服务器挂掉之后,会通过zookeeper上的信息重新从上次的位置继续消费,从而防止数据丢失。

    0.9版本之前offset存储在zk,0.9之后存储在本地(默认存7天,168小时)

    因为这样需要频繁的和zk交互,zk反应比较慢,所以改版存储在本地(存在一个kafka broker中)

     

    ================================================

    下载kafka安装包,个人习惯放在/opt中,之后解压安装包,官网下的是kafka_2.12-2.6.0.tgz用tar xvfz kafka_2.12-2.6.0.tgz 解压,解压后进入解压的文件夹

     

    配置文件在config中:

    kafka配置文件是server.properties

    zookeeper的是zookeeper.properties

    消费者的是consumer.properties

    生产者的是producer.properties

     

    首先要配置zookeeper.properties

    datadir是缓存数据的保存地点

    clientport是zookeeper端口

    dataLogDir是日志的保存地点

     

    之后配置server.properties

    Broker.id是集群中broker的唯一id,每个机器的不能一样,这里我就启一个,所以就不动了

    host.name是服务器ip地址,虚拟机实验就localhost就行,剩下的要配置ip地址

    zookeeper.connect 是zk地址,注意看看路径对不对

    Port 端口号(listeners=PLAINTEXT)也是端口,默认就行

    log.dirs   kafka数据存放地址

     

     

    配置好后先运行zookeeper,再运行kafka

    开启zookeeper

    bin/zookeeper-server-start.sh config/zookeeper.properties

    输出日志的开启方法:

    nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper-run.log 2>&1 &    (这样在本目录会有个日志)

     

    开启kafka

    bin/kafka-server-start.sh config/server.properties

    输出日志的开启方法:

    nohup bin/kafka-server-start.sh config/server.properties > kafka-run.log 2>&1 &          (这样在本目录会有个日志)

     

    使用jps -l查看是否运行成功:

    显示:[root@localhost bin]# jps

    7797 Kafka

    7564 QuorumPeerMain //QuorumPeerMain是zookeeper的守护进程

     

     

    创建一个topic

    ./kafka-topics.sh --create --zookeeper  localhost:2181 --replication-factor 1 --partitions 1 --topic test     //注意这里2181是config目录中zookeeper.properties配置clientPort端口,replication-factor是每个partition的副本个数  --partitions是对应topic下分区数量

    返回结果:Created topic "test"

    显示topic:

    ./kafka-topics.sh -list -zookeeper localhost:2181

     

    创建一个生产者:

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic test//--broker -list是你broker服务器所在的IP地址和端口 --topic选择topic

    输入完成后会进入输入面板,在输入面板中输入信息,按ctrl c结束

     

    在消费者中查看:

    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

    查看topic test中的历史消息,这样就可以看到刚刚发送的

     --from-beginning是把缓存的记录都同步过来,删掉这个就是显示的实时接收的数据

     =======================================================================================================

    server.properties中字段对应的中文解释:https://blog.csdn.net/lizhitao/article/details/25667831

    我参考的这三个教程搭建kafka。

    https://www.cnblogs.com/zhaoshizi/p/12154518.html

    https://www.cnblogs.com/enhance/p/11233164.html

    https://blog.csdn.net/sinat_32023305/article/details/83860441