Centos7系统部署搭建Kafka集群

一、环境准备

1.1 服务器准备

搭建kafka集群至少需要3台服务器(或虚拟机也可),我们提前准备好3台不同IP的服务器

iphostname
192.168.2.83kafkaserver1
192.168.2.84kafkaserver2
192.168.2.86kafkaserver3

1.2 版本信息

kafak:2.13-3.4.0;
JDK:1.8+;

1.3 启动kafka环境

1.3.1 获取kafka

首先下载最新版kafka,再解压安装:

$ tar -xzf kafka_2.13-3.4.0.tgz
$ cd kafka_2.13-3.4.0

完成后可以得到一个kafka的文件夹,我这里是直接放在桌面的,各位可以根据自己需求选择文件夹存放。
在这里插入图片描述

1.3.2 启动kafka

Apache Kafka 可以使用 ZooKeeper 或 KRaft 启动,但不能同时使用。

1.3.2.1 kafka && ZooKeeper

以前的kafka之前还需要准备zookeeper环境,新版的kafka中自带由,免去了很多麻烦。

第一步:按顺序启动所有服务:

# Start the ZooKeeper service
$ bin/zookeeper-server-start.sh config/zookeeper.properties

第二步:打开另一个终端会话并运行:

# Start the Kafka broker service
$ bin/kafka-server-start.sh config/server.properties

kafka的bin目录带有zookeeper:
在这里插入图片描述
以上两步命令运行后,可以看到kafka服务已经启动:
在这里插入图片描述

1.3.2.2 kafak && KRaft

第一步:生成集群 UUID

$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

第二步:格式化日志

$ bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

第三步:启动卡夫卡服务器

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

以上三步命令运行后,同理可以看到kafka服务已经启动,这里就不演示了。

1.4 创建主题

kafka的事件储存在主题中,主题类似于文件系统中的文件夹,事件是该文件夹中的文件。所以,在使用前必须为事件创建主题。

打开另一个终端会话并运行

$ bin/kafka-topics.sh --create --topic kafka-topic-test --bootstrap-server localhost:9092

在这里插入图片描述

Kafka 的所有命令行工具都有额外的选项:运行kafka-topics.sh不带任何参数的命令以显示使用信息。例如,显示 新主题的 分区计数等详细信息:

$ bin/kafka-topics.sh --describe --topic kafka-topic-test --bootstrap-server localhost:9092

在这里插入图片描述

1.5 事件写入主题

Kafka 客户端通过网络与 Kafka 代理通信以写入(或读取)事件。一旦收到,代理将以持久和容错的方式存储事件。

默认情况下,输入的每一行都会导致一个单独的事件被写入主题。

$ bin/kafka-console-producer.sh --topic kafka-topic-test --bootstrap-server localhost:9092
one
two

在这里插入图片描述

1.6 事件读取

打开另一个终端会话并运行控制台消费者客户端以读取事件:

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

在这里插入图片描述

1.7 停止kafka环境

使用 停止生产者和消费者客户Ctrl-C。 使用 停止 Kafka 代理Ctrl-C。如果使用 Kafka && ZooKeeper,还需要停止 ZooKeeper 服务器 Ctrl-C。

如果还想删除本地 Kafka 环境的任何数据,包括在此过程中创建的任何事件,请运行以下命令

$ rm -rf /tmp/kafka-logs /tmp/zookeeper /tmp/kraft-combined-logs

二、搭建 kafka 集群

前提条件:按照第一步骤的方法为列出的三台服务器全部安装 kakfa 。
我们这里用的 kafka && ZooKeeper 模式,所以先要搭建 zookeeper 集群。

2.1 ZooKeeper 集群搭建

2.1.1 配置文件修改

我们前面已经安装好了单机版的 kafak,它自带 ZooKeeper,现在我们对它们进行配置搭建集群。

cd kafka_2.13-3.4.0/
cd config/
vim zookeeper.properties

修改zookeeper.properties文件:

1.修改文件目录

dataDir=/var/zookeeper
#添加
initLimit=5
syncLimit=2
tickTime=2000

2.添加服务节点

server.1=192.168.2.83:2888:3888
server.2=192.168.2.84:2888:3888
server.3=192.168.2.86:2888:3888

像下面这样:

在这里插入图片描述

3.创建数据文件夹

# 新建zookeeper.properties 中配置的dataDir目录
mkdir /var/zookeeper
cd /var/zookeeper
# 新建myid文件,三个节点分别设置值为1,2,3
touch myid
echo 1 > /var/zookeeper/myid

4.启动时可能会遇到以下报错:
在这里插入图片描述

这个时候请检查端口是否放开,若没有则有两种方法:

  1. 关闭防火墙
#sudo systemctl stop firewalld
  1. 或者防火墙放行
firewall-cmd --zone=public --add-port=2181/tcp --permanent 
firewall-cmd --zone=public --add-port=3888/tcp --permanent 
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --reload

然后在其他的2个服务器重重复上面的步骤,(注意节点设置)

2.2 kafka 集群搭建

2.2.1 kafka 配置修改

1.修改server.properties

#每个节点唯一
broker.id=1
#填写本地IP
listeners=PLAINTEXT://192.168.2.83:9092
#这里有几个成员就写几个
zookeeper.connect=192.168.2.83:2181,192.168.2.84:2181,192.168.2.86:2181
#我这里有三台机器所以设置下面的属性为3
offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=3
group.initial.rebalance.delay.ms=3

2.启动 kafka
在这里插入图片描述

3.如果启动报以下错误

在这里插入图片描述
则对meta.properties进行修改,该文件默认在 /tmp/kafka-logs

修改其cluster.id等于Cluster ID即可。

2.2.1 kafka 集群测试

搭建完成后,我们简单的测试一下是否成功。

我们在节点 192.168.2.73上启动一个发布者进行消息发布,在节点192.168.2.84和192.168.2.86上分别启动一个消费者进行事件的消费。

2.2.1.1 创建测试用主题

我们首先创建一个主题 topic-test,并指定分区为 0,读取模式为从头读取,并连接本地服务器。

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.83:9092 --offset latest --partition 0 --topic topic-test
2.2.1.2 创建消费者

随后我们在每个集群服务其上创建消费者,并指定地址为本地地址

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.83:9092 --offset latest --partition 0 --topic topic-test
2.2.1.3 创建发布者

随便选一台服务器创建发布者,指定集群列表和主题,并发布消息:

bin/kafka-console-producer.sh  --topic topic-test --broker-list 192.168.2.83:9092,192.168.2.84:9092,192.168.2.86:9092
2.2.1.4 测试结果

发布者:
在这里插入图片描述

消费者
在这里插入图片描述
测试成功!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在CentOS 7上部署Redis集群需要以下步骤: 1. 更新yum:使用命令`yum update`来更新yum软件包管理器。 2. 安装Docker:使用命令`yum install docker`来安装Docker。 3. 启动Docker服务:使用命令`systemctl start docker`来启动Docker服务,并使用命令`systemctl enable docker`将其设置为开机启动。 4. 创建Redis集群的文件夹:使用命令`mkdir /usr/local/src/redis-cluster`来创建存放Redis集群配置文件和数据的文件夹。 5. 下载Redis配置文件:使用命令`wget https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf`来下载Redis配置文件。 6. 修改Redis配置文件:使用命令`vi redis.conf`打开Redis配置文件,并进行以下修改: - 将`bind 127.0.0.1`修改为`bind 0.0.0.0`,允许外部访问Redis。 - 将`protected-mode yes`修改为`protected-mode no`,关闭保护模式。 - 将`cluster-enabled no`修改为`cluster-enabled yes`,启用集群模式。 - 将`cluster-config-file nodes-6379.conf`修改为`cluster-config-file nodes.conf`。 - 将`appendonly no`修改为`appendonly yes`,开启AOF持久化。 - 将`requirepass foobared`修改为`requirepass yourpassword`,设置Redis密码。 - 保存并退出配置文件。 7. 创建Redis集群容器:使用下面的命令来创建6个Redis容器,并启动集群: ``` for port in `seq 6000 6005`; do docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /usr/local/src/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/src/redis-cluster/${port}/data:/data --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; done ``` 8. 构建Redis集群:进入其中一个Redis容器,使用下面的命令来创建Redis集群: ``` docker exec -it <container_id> /bin/bash redis-cli --cluster create ip:6000 ip:6001 ip:6002 ip:6003 ip:6004 ip:6005 --cluster-replicas 1 ``` 注意替换`<container_id>`为任意一个创建的Redis容器的ID。 9. 配置每个Redis的密码:进入每个Redis容器,使用下面的命令来设置密码: ``` docker exec -it <container_id> /bin/bash redis-cli -a yourpassword config set requirepass yourpassword ``` 注意替换`<container_id>`为每个Redis容器的ID和`yourpassword`为你想设置的密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timi先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值