搭建kafka集群

前言

搭建kafka集群用到zookeeper,前提是先把zookeeper集群搭建起来,详细搭建可参考这篇文章:CSDNicon-default.png?t=N658https://mp.csdn.net/mp_blog/creation/editor/131626457

 kafka是什么,说白就是个消息中间件,gpt一问

 kafka 相关名词解释:

1.producer:
  消息生产者,发布消息到 kafka 集群的终端或服务。
2.broker:
  kafka 集群中包含的服务器。
3.topic:
  每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。
4.partition:
  partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。
5.consumer:
  从 kafka 集群中消费消息的终端或服务。
6.Consumer group:
  high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。
7.replica:
  partition 的副本,保障 partition 的高可用。
8.leader:
  replica 中的一个角色, producer 和 consumer 只跟 leader 交互。
9.follower:
  replica 中的一个角色,从 leader 中复制数据。
10.controller:
  kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
11.zookeeper:
  kafka 通过 zookeeper 来存储集群的 meta 信息。

你起码得知道这是个啥东西,你才能搭建配配置

需要准备的东西

用到了三台虚拟机,ip地址分别是192.168.140.130,192.168.140.131,192.168.140.132,需要在虚拟机安装java环境。

搭建步骤

其实搭建那些什么集群多了,你就会发现无非玩来玩去就那几样。首先需要去官网下载它,这里可能需要注意的是版本(举个例子,可能在一些旧的版本配置文件以conf结尾,新一点的以什么properties),很多文章搭建都是很久远的事情,技术都是在不断变化的,更何况是在it届,你前脚刚学完一个什么消息中间件,后脚又更新另外一个。这边刚出完一个框架,你刚用的得心应手,就又又又出了另外一个。但是很多东西它还是换汤不换药。总结规律很重要。像这些集群搭建你多搭几个你就会发现无非就是先去下载安装,配置它的环境变量(配置环境变量作用就不用多说了吧,随时随地能运行它的脚本,而不是每次运行都得进入那个目录),然后就是配置文件(感觉这些集群玩的就是配置文件)无非就是配置它日志存放的地方(一般他会有一个默认的),但一般都是自己创建一个,然后在配置文件指定它存放的地方,日志一般就叫log啥,另一个就是数据(data)之类的东西,然后就是他的一些默认端口号,集群的ip地址啥的,然后就是一些连接超时的时间等等。在搞定配置文件后就是开放相应的防火墙端口号了,然后用命令检查集群的搭建状态。话不多数,上操作。

具体步骤

去kafka官网下载kafka的包,老规矩,用一些终端连接工具先连接三台虚拟机,然后把下载的文件解压并重新命名(不然就是一堆又臭又长的名字,每次cd进去你的都得打半天)这里用的kafka版本是3.5.0(还有 前提你已经搭建号zookeeper集群了,因为注册中心用的是zookeeper,在接下的配置文件中需要填写zookeeper的集群地址)

 一般这种下好后可以cd进去看看,无非就是有一些bin(存放一些脚本的地方,什么启动kafka服务,关掉kafka服务.sh文件),lib(存放它的一些依赖包啥的),config(就是存放那些配置文件的地方)上来就是一个ls

这个kafka-log是没有的,这就是之前讲到的你自己创建一个日志存放的地方,那个logs是默认的,好了,直接cd进入config server.properties就是我们需要配置的配置文件,直接vim进去

 

这三个你配置一下的,具体是啥呢,直接复制丢给gpt解释一下

 这是 Kafka 的配置文件中的三个属性设置:

  1. broker.id=3:这是 Kafka Broker 的唯一标识符。在一个 Kafka 集群中,每个 Broker 都有一个唯一的 ID,用于唯一标识该 Broker。每个 Broker 的 ID 必须是唯一的,并且通常在集群配置中手动分配。

  2. host.name=192.168.140.132:9092:这是 Kafka Broker 的主机名和端口号。在这个示例中,Kafka Broker 的主机名是 192.168.140.132,使用的端口号是 9092。Kafka Broker 使用这个配置来监听客户端的连接请求,并将消息与客户端进行交互。

  3. listeners=PLAINTEXT://192.168.140.132:9092:这是 Kafka Broker 监听客户端连接的网络接口和地址。在这个示例中,Kafka Broker 使用 PLAINTEXT 协议在 192.168.140.132 的 9092 端口上监听客户端连接。您可以根据需要配置多个监听器,以支持不同的协议和网络接口。

这些配置属性在 Kafka 的 server.properties 文件中设置。每个 Kafka Broker 在启动时都需要加载该文件,并根据其中的配置进行初始化。在一个 Kafka 集群中,每个 Broker 的配置文件可以有所不同,以适应不同的角色和配置需求。

其他乱七八糟不要管,一个是日志,num.partitions=1(为啥要提这个呢,这里有一个注意点,如果你这里设置分区为1了,后面用kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 3 --bootstrap-server 192.168.140.130:9092,这里是创建一个my-topic,并且拥有三个分区和三个副本因子,但是不能生效,因为你在配置文件设为了1,所以它不会生效)

如果在 Kafka 配置文件中显式地设置了 num.partitions=1,那么创建主题时指定的分区数量将被忽略,而使用配置文件中的默认值。

Kafka 的配置文件中的 num.partitions 属性确定了在创建新主题时使用的默认分区数量。如果您在配置文件中设置了 num.partitions=1,则无论您在创建主题时指定了其他分区数量,都会被忽略,而使用配置文件中的默认值。

这意味着,如果您的配置文件中设置了 num.partitions=1,则无论您使用什么命令创建主题,分区数量都将被限制为 1。这对于测试和开发目的可能是有用的,但在生产环境中,您可能需要根据需求设置适当的分区数量。

如果您希望在创建主题时指定分区数量生效,您需要确保在配置文件中没有设置 num.partitions 属性,或者将其设置为与您希望的分区数量相匹配的值。

总结来说,如果配置文件中设置了 num.partitions=1,则主题的分区数量将被限制为 1,而不会受到创建主题时指定的分区数量的影响。

填上自己的zookeeper集群地址,保存完后就是开放端口了,记得三台服务器都要配置,不同点在于 broker.id(每台机器的kafka id是唯一的,比如三台分别为1,2,3,host.name,listeners填上对应的虚拟机IP地址)这里唯一开放的端口号就是9092

firewall-cmd --zone=public --add-port=2888/tcp  --permanent
firewall-cmd --reload
firewall-cmd --list-all

list-all看一下

然后再telnet (养成好的习惯,看看能不能连接上这个ip的这个端口,经常忘记开端口找了很久问题,后面折腾一阵子发现是以为端口没开。。。。) 

出现这个就证明没毛病。下一步就是启动服务了

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

 记得配置好环境变量,怎么配置linux中的环境变量,自行百度。后面的配置文件的路径要写对。对了,如果以这个启动,进入的是kafka的命令行,你如果要创建topic还得另外打开一个终端,所以直接以后台方式后者守护进程方式启动

kafka-server-start.sh -daemon /kafka/config/server.properties#守护进程
nohub kafka-server-start.sh /kafka/config/server.properties 

启动后就可以创建topic了

kafka-topics.sh --create --topic aa-topic --partitions 3 --replication-factor 3 --bootstrap-server 192.168.140.130:9092

这里我创建了一个aa-topic,并且是在192.168.140.130:9092

可以看见创建成功,你还可以用一下命令查看某个集群下的topic 

kafka-topics.sh --bootstrap-server 192.168.140.130:9092 --list#查看当前集群有的topic

 可以看见刚刚创建的topic,下一步就是生产者把消息指定aa-topic 上

kafka-console-producer.sh --topic aa-topic --bootstrap-server 192.168.140.130:9092

可以看到生产了ddd,fff,ggg三条消息,接着就是消费者消费消息 

kafka-console-consumer.sh --topic aa-topic --bootstrap-server 192.168.140.130:9092 --from-beginning

 可以看到这三条消息,为了检验集群,在更换一下IP地址,第一次是192.168.140.130,这次换成192.168.140.131,或者132,如果查看131消息也能被消费到,证明集群没啥问题

kafka-console-consumer.sh --topic aa-topic --bootstrap-server 192.168.140.131:9092 --from-beginning

 在131也能看到消息。ok完美收工!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要搭建Kafka集群,需要以下步骤: 1. 安装Java环境:Kafka是基于Java开发的,因此需要先安装Java环境。 2. 下载Kafka:从官网下载Kafka的二进制包。 3. 解压Kafka:将下载的Kafka二进制包解压到指定的目录下。 4. 配置Kafka:修改Kafka的配置文件,包括broker.id、zookeeper.connect、listeners等参数。 5. 启动Zookeeper:Kafka依赖于Zookeeper,因此需要先启动Zookeeper。 6. 启动Kafka:启动Kafka集群,可以使用命令行或者脚本启动。 7. 测试Kafka:使用Kafka提供的命令行工具进行测试,包括创建主题、发送消息、消费消息等操作。 8. 部署Kafka集群:将Kafka集群部署到多台服务器上,可以使用Kafka提供的复制机制实现数据的备份和容错。 以上就是搭建Kafka集群的基本步骤。需要注意的是,Kafka的配置和部署需要根据实际情况进行调整和优化,以保证Kafka集群的性能和稳定性。 ### 回答2: Kafka是一款高性能的分布式消息系统,常常用于大规模数据流的处理和分发。Linux作为一个可靠的服务端操作系统,也是Kafka的一个常见的运行环境。本文将介绍在Linux环境下搭建Kafka集群的步骤和注意事项。 1. 安装Java Kafka是基于Java开发的,因此需要先安装Java运行环境。使用以下命令安装Java 8: ``` $ sudo apt-get update $ sudo apt-get install openjdk-8-jdk ``` 2. 下载和解压缩Kafka 下载Kafka最新版本,并解压缩到合适的目录下。比如: ``` $ wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz $ tar -zxf kafka_2.13-2.6.0.tgz $ cd kafka_2.13-2.6.0 ``` 3. 修改配置文件 Kafka的配置文件位于“config”目录下,常见的有“server.properties”和“zookeeper.properties”。我们需要修改这些配置文件以适配我们的环境。下面是一些要注意的设置: - “server.properties”中的“broker.id”必须是唯一的,每个Kafka节点应该有一个唯一的值。 - “server.properties”中需要设置“listeners”为“PLAINTEXT://:9092”或“PLAINTEXT://[[hostname]]:9092”,这样才能通过网络接口访问到Kafka。 - “zookeeper.properties”中需要设置“dataDir”为Zookeeper数据存储的目录。 4. 启动Zookeeper Kafka依赖Zookeeper来管理集群配置,因此需要先启动Zookeeper。使用以下命令启动Zookeeper: ``` $ bin/zookeeper-server-start.sh config/zookeeper.properties ``` 5. 启动Kafka节点 我们可以使用以下命令启动一个Kafka节点,注意使用不同的配置文件: ``` $ bin/kafka-server-start.sh config/server.properties ``` 如果我们需要启动多个节点,可以使用不同的配置文件,并在启动时设置不同的“broker.id”。启动一组Kafka节点后,它们将自动组成一个集群。 6. 测试 使用以下命令创建一个主题和消费者: ``` $ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test $ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning ``` 然后在生产者端发送一些消息: ``` $ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test >test message 1 >test message 2 ``` 我们应该可以在消费者端看到这些消息。 7. 总结 在Linux环境下搭建Kafka集群需要一定的基础知识和技能,但只要按照上述步骤操作,应该能够很容易地搭建一个稳定的、高性能的Kafka环境。当然,在运维过程中也需要注意Kafka的一些常见问题,如副本同步延迟、消息丢失等。不过这些问题已经超出了本文的范围。 ### 回答3: Kafka是一个高性能、可扩展、分布式的消息队列,由于它的高可靠性和高吞吐量,越来越多的企业选择使用Kafka作为消息中间件。为满足大规模数据处理和高并发请求的需求,必须通过搭建Kafka集群来保证其性能和可靠性。 一、环境准备 1.安装Java环境:Kafka运行需要Java环境,安装JDK。 2.下载和安装KafkaKafka官方网站下载.tar.gz格式的压缩包,解压缩至指定路径即可。 3.配置Kafka:修改config文件夹下server.properties配置文件,设置Kafka的基本参数。 4.准备Zookeeper环境:Kafka集群依赖于Zookeeper环境,需要先安装Zookeeper。 5.配置Zookeeper:修改Zookeeper的配置文件config/zookeeper.properties,设置Zookeeper的基本参数。 二、搭建Kafka集群 1.编辑Kafka配置文件:修改Kafka的配置文件config/server.properties,设置Kafka节点通信机制,以及数据保存路径等参数。 2.启动Zookeeper:启动Zookeeper,确保Zookeeper正常工作。 3.启动Kafka服务器:执行bin/kafka-server-start.sh config/server.properties命令启动Kafka服务器,启动成功后就可以在本机访问Kafka。 4.配置Kafka集群: 在每个Kafka节点上修改配置文件,设置broker.id、zookeeper.connect、port等参数,然后依次启动所有节点。 5.测试Kafka集群: 在集群中的任何一个节点上创建一个主题,向主题中发送消息并消费消息,以确保Kafka集群的正常工作。 三、集群管理 管理Kafka集群需要使用kafka-manager或kafka-web-console等工具,可以通过Web界面来管理Kafka集群的主题、分区、消费者以及监控Kafka的各项指标,方便用户进行集群管理。 总之,通过上述步骤,可以快速搭建一个高可靠、高吞吐量的Kafka集群,为企业提供无缝的数据传输、消息中间件服务。同时,对于管理者而言,还需要做好监控和维护工作,保证 kafka 集群持续稳定的工作,最终满足各种复杂业务的数据流转和处理需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值