龙空技术网

搭建 Kafka 高可用集群(一)之 单台搭建(图文案例)

JAVA软件工程师 219

前言:

当前你们对“kafka集群搭建详细步骤”大约比较讲究,大家都想要了解一些“kafka集群搭建详细步骤”的相关资讯。那么小编也在网上网罗了一些对于“kafka集群搭建详细步骤””的相关内容,希望兄弟们能喜欢,各位老铁们快快来学习一下吧!

本篇文章简单来讲解一下kafka的高可用集群搭建,准备三台机器,设置三个分区来进行测试。

三台机器均是虚拟机。ip为:10.211.55.11、10.211.55.12、10.211.55.13

下载安装

首先我们去apache官网下载kafka。

kafka 下载图

下载目录我们选定为 /usr/local

# 下载方式> cd /usr/local> wget  # 然后我们分别在三台机器执行相同的操作进行下载,或者使用scp拷贝过去。# scp 拷贝语法> scp kafka_2.12-2.8.0.tgz root@10.211.55.12:/usr/local/kafka_2.12-2.8.0.tgz# 输入密码即可完成拷贝  # 在三台机器分别执行解压操作> tar zxvf kafka_2.12-2.8.0.tgz

下载安装完后目录截图

之后我们所有的操作都在 /usr/local/kafka_2.12-2.8.0 目录下

配置文件修改

我们现在kafka根目录创建2个文件,之后会修改配置文件作为消息和日志的存储之地。

# kafka 消息和索引文件的存储目录> mkdir kafka-logs# zookeeper 数据目录> mkdir zookeeper

我们编辑一下zookeeper的配置文件。

我们使用 vim config/zookeeper.properties 来编辑一下zookeeper的配置文件,然后修改dataDir配置项。

从下面的配置文件我们可以得知zookeeper的端口为2181

# the directory where the snapshot is stored.dataDir=/usr/local/kafka_2.12-2.8.0/zookeeper# the port at which the clients will connectclientPort=2181# disable the per-ip limit on the number of connections since this is a non-production configmaxClientCnxns=0# Disable the adminserver by default to avoid port conflicts.# Set the port to something non-conflicting if choosing to enable thisadmin.enableServer=false# admin.serverPort=8080

然后我们编辑kafka server的配置文件 vim config/server.properties ,从下面的配置我们可以得知kafka服务的默认端口为9092

修改以下几项:

# 为了方便识别,我们修改成和ip对应的编号,此处我使用的10.211.55.11这台机器,那么修改成如下broker.id=11# 使listeners生效,配置如下(kafka服务端口为9092,记下来)listeners=PLAINTEXT://10.211.55.11:9092# 数据文件存储目录log.dirs=/usr/local/kafka_2.12-2.8.0/kafka-logs# 该配置项不做修改,使用默认值1num.partitions=1# 该配置项不做修改,使用默认值1offsets.topic.replication.factor=1# 修改zookeeper服务地址zookeeper.connect=10.211.55.11:2181

配置文件我们都修改完毕。

启动服务

# 启动zookeeper服务,建议新手控制台启动先观察一下,如果能正常启动成功,再使用后台启动即可# 控制台启动(启动成功后没问题,按住ctrl+c退出)sh bin/zookeeper-server-start.sh config/zookeeper.properties# 后台启动> nohup sh bin/zookeeper-server-start.sh config/zookeeper.properties &  # 启动kafka-server服务(后台启动)> nohup sh bin/kafka-server-start.sh config/server.properties &  # 最后记得使用我们使用ps或者jps查看下进程,是否都启动成功

创建topic主题

# 创建topic主题# 方式1 创建test 主题(指定 kafka server 服务进行创建)> sh bin/kafka-topics.sh --create --bootstrap-server 10.211.55.11:9092 --replication-factor 1 --partitions 1 --topic test# 方式2 创建test2主题(指定 zookeeper 服务进行创建)> sh bin/kafka-topics.sh --create --zookeeper 10.211.55.11:2181 --replication-factor 1 --partitions 1 --topic test2 # 查看主题(此处应该存在test和test2两个主题)> sh bin/kafka-topics.sh --list --zookeeper 10.211.55.11:2181 # 查看是否创建了本地存储文件> ll kafka-logs/# 我们可以看到分别创建了两个文件夹 test-0 和 test2-0# 我们查看其中一个topic主题生成的目录文件> ll kafka-logs/test-0/-rw-r--r--. 1 root root 10485760 5月  13 23:00 00000000000000000000.index-rw-r--r--. 1 root root        0 5月  13 23:00 00000000000000000000.log-rw-r--r--. 1 root root 10485756 5月  13 23:00 00000000000000000000.timeindex-rw-r--r--. 1 root root        8 5月  13 23:00 leader-epoch-checkpoint # 其中index和timeindex从名字上我们可以得知这是索引文件;log是消息;leader-epoch-checkpoint则是保存了每一任leader开始写入消息时的offset

启动生产者和消费者

# 启动自带模拟生产者,准备向test主题发送消息,我们执行完后,窗口卡顿在了 > ,因为是等待输入消息,我们再先创建个消费者> sh bin/kafka-console-producer.sh --broker-list 10.211.55.11:9092 --topic test # 启动自带模拟消费者(新开shell窗口),我们执行完后,窗口同样处于等待输出的状态。 如果我们在命令行后增加 --from-beginning,则表示生产过的所有消息全部进行消费一遍> sh bin/kafka-console-consumer.sh --bootstrap-server 10.211.55.11:9092 --topic test # 此时我们在生产者处随便输入一些消息,消费者窗口则会相应的输出消息

截止到此处简单的 kafka 消息测试完毕。

高可用搭建请看下篇文章 : 搭建 Kafka 高可用集群(二),3台机器,3分区测试高可用集群

标签: #kafka集群搭建详细步骤 #kafka配置集群