聊聊 Kafka: 在 Linux 环境上搭建 Kafka

老周聊架构

共 3840字,需浏览 8分钟

 ·

2021-08-24 00:55

点击上方老周聊架构关注我


一、环境准备

1.1 Java环境为前提

1.1.1 上传jdk-8u261-linux-x64.rpm到服务器并安装

# 安装命令
rpm -ivh jdk-8u261-linux-x64.rpm 



1.1.2 配置环境变量

# 编辑配置文件,jdk的bin目录到/etc/profile文件,对所有用户的shell有效
vim /etc/profile
# 生效
source /etc/profile



export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
export PATH=$PATH:$JAVA_HOME/bin



# 验证
java -version

至此,jdk安装成功。

1.2 Zookeeper的安装配置

1.2.1 上传zookeeper-3.4.14.tar.gz到服务器,解压到/opt

# 解压zk到指定目录
tar -zxf zookeeper-3.4.14.tar.gz -C /opt



1.2.2 修改Zookeeper保存数据的目录,dataDir

# 进入conf配置目录
cd /opt/zookeeper-3.4.14/conf
# 复制zoo_sample.cfg命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg文件
vim zoo.cfg
dataDir=/var/riemann/zookeeper/data






1.2.3 编辑/etc/profile,使配置生效

设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置;
   ZOOKEEPER_PREFIX指向Zookeeper的解压目录; 
将Zookeeper的bin目录添加到PATH中:

在这里插入图片描述
export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/var/riemann/zookeeper/log

配置完以后再生效配置:

source /etc/profile 

1.2.4 启动Zookeeper,确认Zookeeper的状态

zkServer.sh start 


至此,zookeeper安装成功。

1.3 Kafka 的安装与配置

1.3.1 上传kafka_2.12-1.0.2.tgz到服务器并解压

tar -zxf kafka_2.12-1.0.2.tgz -C /opt 



1.3.2 配置环境变量并生效

vim /etc/profile 
export KAFKA=/opt/kafka_2.12-1.0.2
export PATH=$PATH:$KAFKA/bin
source /etc/profile 

1.3.3 配置/opt/kafka_2.12-1.0.2/config中的server.properties文件

vi  /opt/kafka_2.12-1.0.2/config/server.properties



`Kafka`连接`Zookeeper`的地址,此处使用本地启动的`Zookeeper`实例
连接地址是`localhost:2181`
后面的 `myKafka` 是`Kafka`在Zookeeper中的根节点路径

配置kafka存储持久化数据目录


log.dirs=/var/riemann/kafka/kafka-logs

创建上述持久化数据目录

mkdir -p /var/riemann/kafka/kafka-logs

1.4 启动Kafka

进入Kafka安装的根目录,执行如下命令:

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

启动成功,可以看到控制台输出的最后一行的started状态:此时kafka安装成功。

1.5 重新开一个窗口,查看Zookeeper的节点



1.6 此时Kafka是前台模式启动,要停止,使用Ctrl+C

如果要后台启动,使用命令:

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

查看Kafka的后台进程:

ps -ef | grep kafka


停止后台运行的Kafka:

kafka-server-stop.sh 

二、生产与消费

查看zookeeper状态,zookeeper启动成功,再启动kafka。


2.1 kafka-topics.sh 用于管理主题

查看命令的帮助信息



# 列出现有的主题
[root@master1 ~]# kafka-topics.sh --list --zookeeper localhost:2181/myKafka
# 创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topic_test --partitions 1 --replication-factor 1
# 查看分区信息
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --list
# 查看指定主题的详细信息
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --describe --topic topic_test 
# 删除指定主题
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --delete --topic topic_test 

列出现有主题,创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。

查看指定主题的详细信息


创建主题,该主题包含多个分区、

多个分区:横向扩展
多个副本:高可用

2.2 kafka-console-consumer.sh用于消费消息

# 开启消费者
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_test 
# 开启消费者方式二,从头消费,不按照偏移量消费
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_test --from-beginning

2.3 kafka-console-producer.sh用于生产消息

# 开启生产者
[root@node1 ~]# kafka-console-producer.sh --topic topic_test --broker-list  localhost:9020

2.4 具体操作

开启消费者和生产者,生产并消费消息。


消费者,按照偏移量消费


消费者从头消费,不按照偏移量消费




欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。

喜欢的话,点赞、再看、分享三连。



点个在看你最好看

浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报