全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

一步一步在CentOS7上搭建Kafka集群

发布时间:2023-12-20 06:16:06
发布人:xqq

在当今的互联网和大数据时代,消息队列架构成为了许多企业关注的焦点。比如,千亿日活的短视频应用——抖音,它的消息队列就是使用Kafka来完成的。Kafka作为一种高性能、高可靠性的消息中间件,为许多企业提供了很好的解决方案。在本文中,我们将带领您一步一步在CentOS 7上搭建Kafka集群,让您更好地了解Kafka的使用和应用。

一、准备工作

在开始之前,我们需要提前准备好一些工作:

1. 一台安装了CentOS 7的机器,并开启了网络连接。

2. JDK环境,Kafka需要JDK 1.8及以上版本,因此我们需要先安装JDK环境。

3. ZooKeeper,Kafka依赖于ZooKeeper,因此我们需要先安装好ZooKeeper。

二、安装JDK环境

我们可以从Oracle官网上下载JDK,这里我使用的是openjdk-8-jdk版本。在终端中输入以下命令进行安装:

sudo yum install -y java-1.8.0-openjdk-devel

然后,我们可以使用以下命令检查是否正确安装了JDK环境:

java -version

如果显示以下内容,则说明JDK环境已经安装成功:

openjdk version "1.8.0_232"OpenJDK Runtime Environment (build 1.8.0_232-b09)OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

三、安装ZooKeeper

在安装ZooKeeper之前,我们需要为其创建一个用户,并授权:

sudo useradd zookeeper -m -s /bin/bashsudo passwd zookeepersudo chown -R zookeeper:zookeeper /usr/local/zookeeper

接下来,我们可以从官网上下载ZooKeeper,这里我使用的是ZooKeeper 3.4.14版本。在终端中输入以下命令进行安装:

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gztar -zxvf zookeeper-3.4.14.tar.gzsudo mv zookeeper-3.4.14/ /usr/local/zookeeper

然后,我们需要创建ZooKeeper的配置文件:

sudo cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

现在,我们可以启动ZooKeeper了:

sudo /usr/local/zookeeper/bin/zkServer.sh start

可以使用以下命令检查是否正确启动了ZooKeeper:

sudo /usr/local/zookeeper/bin/zkServer.sh status

如果显示以下内容,则说明ZooKeeper已经启动成功:

Mode: standalone

四、安装Kafka

在安装Kafka之前,我们需要为其创建一个用户,并授权:

sudo useradd kafka -m -s /bin/bashsudo passwd kafkasudo chown -R kafka:kafka /usr/local/kafka

接下来,我们可以从官网上下载Kafka,这里我使用的是Kafka 2.4.1版本。在终端中输入以下命令进行安装:

wget http://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgztar -zxvf kafka_2.12-2.4.1.tgzsudo mv kafka_2.12-2.4.1/ /usr/local/kafka

然后,我们需要创建Kafka的配置文件:

sudo cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-1.propertiessudo cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-2.properties

现在,我们可以启动Kafka了。在终端中输入以下命令启动Kafka:

sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server-1.propertiessudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server-2.properties

可以使用以下命令检查是否正确启动了Kafka:

sudo /usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server-1.propertiessudo /usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server-2.properties

如果显示以下内容,则说明Kafka已经启动成功:

[2020-03-05 22:10:26,773] INFO Kafka version: 2.4.1 (org.apache.kafka.common.utils.AppInfoParser:109)[2020-03-05 22:10:26,774] INFO Kafka commitId: c57222ae8cd7866b (org.apache.kafka.common.utils.AppInfoParser:110)[2020-03-05 22:10:26,781] INFO [KafkaServer id=1] started (kafka.server.KafkaServer:58)

五、创建主题和分区

在Kafka中,主题是消息的类别,可以将其理解为一个消息队列。分区是一个物理概念,可以将一个主题分成多个分区,每个分区保存着一部分消息,因此可以分别在不同的节点上存储数据,提高了消息的并发处理能力。在本文中,我们将为Kafka创建一个名为test的主题,并将其分成3个分区。在终端中输入以下命令:

sudo /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic test

然后,我们可以使用以下命令查看创建的主题信息:

sudo /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

如果显示以下内容,则说明主题和分区已经成功创建:

Topic:test PartitionCount:3 ReplicationFactor:2 Configs:    Topic: test Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2    Topic: test Partition: 1 Leader: 2 Replicas: 2,1 Isr: 2,1    Topic: test Partition: 2 Leader: 1 Replicas: 2,1 Isr: 1,2

六、发送和接收消息

现在,我们已经成功创建了一个名为test的主题,并将其分成了3个分区。接下来,让我们来发送和接收一些消息。在终端中输入以下命令:

1. 启动一个Kafka生产者:

sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

此时,终端会进入等待消息输入的状态。

2. 启动一个Kafka消费者:

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

此时,终端会输出已经发送的消息。

3. 在生产者终端中输入一些消息,比如:

hello kafka!

4. 在消费者终端中,会输出刚才发送的消息:

hello kafka!

至此,我们已经成功地在CentOS 7上搭建了Kafka集群,并成功地发送和接收了一些消息。Kafka作为一种高性能、高可靠性的消息中间件,为许多企业提供了很好的解决方案。通过本文的学习,相信读者已经对Kafka的使用和应用有了更好的了解。

以上就是IT培训机构千锋教育提供的相关内容,如果您有web前端培训鸿蒙开发培训python培训linux培训,java培训,UI设计培训等需求,欢迎随时联系千锋教育。

相关文章

Linux内存管理优化提升系统性能的必修课!

Linux内存管理优化提升系统性能的必修课!

2023-12-20
Linux虚拟化技术如何使用KVM搭建虚拟机

Linux虚拟化技术如何使用KVM搭建虚拟机

2023-12-20
Linux系统的故障排查手段快速找出问题所在

Linux系统的故障排查手段快速找出问题所在

2023-12-20
入门指南使用Ubuntu进行Python编程

入门指南使用Ubuntu进行Python编程

2023-12-20

最新文章

python培训学校靠谱吗?为什么一定要选择千锋教育

python培训学校靠谱吗?为什么一定要选择千锋教育

2023-12-13
培训学校学java靠谱吗?为什么一定要选择千锋教育

培训学校学java靠谱吗?为什么一定要选择千锋教育

2023-12-13
网络安全哪个培训机构靠谱

网络安全哪个培训机构靠谱

2023-12-13
python培训机构可靠吗?为什么一定要选择千锋教育

python培训机构可靠吗?为什么一定要选择千锋教育

2023-12-13
在线咨询 免费试学 教程领取