Linux系统下Kafka的搭建与启动

这是我在CSDN上写的第一篇文章,从今天开始准备记录一些自己日常开发中遇到的问题以及技术总结。
由于之前项目中用到了kafka中间件,自己也比较感兴趣,所以准备利用个人时间研究一下这个kafka,废话不多说,先来看看kafka的安装与搭建吧。

1.准备工作
Centos、JDK8、zookeeper,Kafka2.11
由于kafka的运行是需要jdk环境的,所以提前将jdk、zookeeper、kafka的安装包下载到本地,并通过scp上传到远程服务器。
以下是我准备的文件
在这里插入图片描述
1.1 JDK配置
修改/etc/profile文件,添加如下配置
export JAVA_HOME=/XXXXX/jdk1.8.0_271
export JRE_HOME= $JAVA_HOME/jre
export PATH= $PATH: $JAVA_HOME/bin
export CLASSPATH=./: // $JAVA_HOME/lib: $JRE_HONE/lib
再执行source /etc/profile

在这里插入图片描述
1.2 Zookeeper配置
修改/etc/profile文件,并添加如下内容
export ZOOKEEPER_HOME=/xxxxx/zookeeper-3.4.12
export PARH=$PATH: $ZOOKEEPER_HOME/bin

修改zookeeper的配置文件,进入zookeeper的conf目录下,将zoo_sample.cfg重命名为zoo.cfg
然后进行如下修改:

zookeeper服务器心跳时间,单位是ms
tickTime=2000
允许follower连接并同步到leader的初始化连接时间,以tickTime的倍数来表示
initLimit=10
leader与follower心跳检测最大容忍时间,响应超过syncLimit*tickTime,leader认为follower死掉,从服务器列表中删除follower
syncLimit=5
数据目录
dataDir=/tmp/zookeeper/data
日志目录
dataLogDir=/tmp/zookeeper/log
端口号
clientPort=2181

默认情况下,linux系统是没有dataDir和dataLogDir目录的。所以需要手动创建这两个目录
mkdir -p /tmp/zookeeper/data
mkdir -p /tmp/zookeeper/log

然后在/tmp/zookeeper/data下创建一个myid文件,这个文件里存放的是服务器的编号。比如当前机器编号是0
在这里插入图片描述
接下来启动zookeeper(单机模式)
到zookeeper的bin目录下,执行sh zkServer.sh start
然后通过sh zkServer.sh status查看服务状态。

1.3 Kafka配置
修改/etc/profile文件
export KAFKA_HOME=/xxxxx/kafka_2.11-2.1.1
export PATH=$PATH: $KAFKA_HOME/bin

修改broker的配置文件/conf/server.properties
broker的编号
broker.id=0
broker对外提供的服务入口地址
listeners=PLAINTEXT://localhost:9092
存放消息日志文件的地址
log.dirs=/tmp/kafka-logs
Kafka所需的zookeeper地址
zookeeper.connect=localhost:2181

然后我们就可以启动kafka服务端
到kafka目录下,执行以下命令:
bin/kafka-server-start.sh config/server.properties &(通过配置文件方式,后台启动kafka)
在这里插入图片描述
执行jps命令,发现zookeeper和kafka都已经启动完成。

2.生产、消费测试
刚才kafka服务端已经搭建并启动完成,接下来来测试一下是否能正常发送、消费消息。
首先我们先创建一个topic主题。
在kafka目录执行如下命令:
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic topic-test --replication-factor 1 --partitions 3
其中topic-test是主题的名字,–replication-factor 1表示主题的副本数是1,即只有一个领导者副本,没有追随者副本,–partitions 3 主题下分区数是3

可以通过如下命令查看topic状态:
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic topic-test
在这里插入图片描述
然后我们就可以测试收发消息了,先通过kafka-console-consumer.sh启动一个消费者实例。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-test

在这里插入图片描述

因为目前没有任何消息产生,所以处于监听状态,但是没有任何消息消费。

下面我们再开一个shell,用来生产消息

在这里插入图片描述
再看一下之前的消费者shell,已经成功消费了两条消息。
在这里插入图片描述
查看3个分区的位移情况
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic topic-test --time -1 --broker-list loalhost:9092
在这里插入图片描述

以上就是在本机上搭建一个单机模式的kafka的简单教程,后续还会继续搭建一个kafka集群。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值