Kafka详解二、如何配置Kafka集群

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置 单节点:一个broker的集群单节点:多个broker的集群多节点:多broker集群一、单节点单broker实例的配置 1. 首先启动zookeeper服务      Kafka本身提供了启动zookeeper的脚本(在kafka/bin/目录下)和zookeeper配置文件(在k
Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置
  • 单节点:一个broker的集群
  • 单节点:多个broker的集群
  • 多节点:多broker集群

一、单节点单broker实例的配置


1. 首先启动zookeeper服务

     Kafka本身提供了启动zookeeper的脚本(在kafka/bin/目录下)和zookeeper配置文件(在kafka/config/目录下),首先进入Kafka的主目录(可通过 whereis kafka命令查找到):
      [root@localhost kafka-0.8]# bin/zookeeper-server-start.sh config/zookeeper.properties
     zookeeper配置文件的一些重要属性:
      # Data directory where the zookeeper snapshot is stored.
      dataDir=/tmp/zookeeper
     # The port listening for client request
      clientPort=2181
     默认情况下,zookeeper服务器会监听 2181端口,更详细的信息可去zookeeper官网查阅。

2. 启动Kafka broker

     运行kafka提供的启动kafka服务脚本即可:
      [root@localhost kafka-0.8]# bin/kafka-server-start.sh config/server.properties
     broker配置文件中的重要属性:
      # broker的id. 每个broker的id必须是唯一的.
       Broker.id=0
     # 存放log的目录
       log.dir=/tmp/kafka8-logs
     # Zookeeper 连接串
      zookeeper.connect=localhost:2181

3. 创建一个仅有一个Partition的topic 

      [root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic kafkatopic

4. 用Kafka提供的生产者客户端启动一个生产者进程来发送消息

      [root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list  localhost:9092 --topic kafkatopic
     其中有两个参数需要注意:
  • broker-list:定义了生产者要推送消息的broker地址,以<IP地址:端口>形式     
  • topic:生产者发送给哪个topic
     然后你就可以输入一些消息了,如下图: 

5. 启动一个Consumer实例来消费消息

      [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning
      当你执行这个命令之后,你便可以看到控制台上打印出的生产者生产的消息:

     和消费者相关的属性配置存放在Consumer.properties文件中,重要的属性有:
     # consumer的group id (A string that uniquely identifies a set of consumers
     # within the same consumer group) 
      groupid=test-consumer-group
     # zookeeper 连接串
      zookeeper.connect=localhost:2181

二、单节点运行多broker实例


1.启动zookeeper 

   和上面的一样

2.启动Kafka的broker

   要想在一台机器上启动多个broker实例,只需要准备多个server.properties文件即可,比如我们要在一台机器上启动两个broker:
   首先我们要准备两个server.properties配置文件
  1. server-1
    1. brokerid=1
    2. port=9092
    3. log.dir=/temp/kafka8-logs/broker1    
  2. server-2
    1. brokerid=2
    2. port=9093
    3. log.dir=/temp/kafka8-logs/broker2 
     然后我们再用这两个配置文件分别启动一个broker
      [root@localhost kafka-0.8]# env JMX_PORT=9999 bin/kafka-server-start.sh config/server-1.properties
     [root@localhost kafka-0.8]# env JMX_PORT=10000 bin/kafka-server-start.sh config/server-2.properties
     可以看到我们启动是为每个broker都指定了不同的JMX Port,JMX Port主要用来利用jconsole等工具进行监控和排错

3.创建一个topic

     现在我们要创建一个含有两个Partition分区和2个备份的broker:
      [root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 2 --partition 2 --topic othertopic

4.启动Producer发送消息

     如果我们要用一个Producer发送给多个broker,唯一需要改变的就是在broker-list属性中指定要连接的broker:
      [root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093 --topic othertopic
     如果我们要让不同的Producer发送给不同的broker,我们也仅仅需要为每个Producer配置响应的broker-list属性即可。

5.启动一个消费者来消费消息

     和之前的命令一样
      [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic othertopic --from-beginning

三、集群模式(多节点多实例)

     介绍了上面两种配置方法,再理解集群配置就简单了,比如我们要配置如下图所示集群:
      zookeeper配置文件(zookeeper.properties):不变
      broker的配置配置文件(server.properties):按照单节点多实例配置方法在一个节点上启动两个实例,不同的地方是zookeeper的连接串需要把所有节点的zookeeper都连接起来
         # Zookeeper 连接串
         zookeeper.connect=node1:2181,node2:2181




   想更深入的了解Kafka请参阅我的另一篇文章: 《Kafka设计与原理详解》






目录
相关文章
|
1月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
91 4
|
2月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
108 2
|
5天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
9天前
|
消息中间件 存储 Kafka
2024最全Kafka集群方案汇总
Apache Kafka 是一个高吞吐量、可扩展、可靠的分布式消息系统,广泛应用于数据驱动的应用场景。Kafka 支持集群架构,具备高可用性和容错性。其核心组件包括 Broker(服务器实例)、Topic(消息分类)、Partition(有序消息序列)、Producer(消息发布者)和 Consumer(消息消费者)。每个分区有 Leader 和 Follower,确保数据冗余和高可用。Kafka 2.8+ 引入了不依赖 Zookeeper 的 KRaft 协议,进一步简化了集群管理。常见的集群部署方案包括单节点和多节点集群,后者适用于生产环境以确保高可用性。
20 0
|
2月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
96 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
1月前
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
|
2月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
108 6
|
2月前
|
消息中间件 分布式计算 Java
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
39 2
|
2月前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
79 2
|
2月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
200 0

热门文章

最新文章

相关实验场景

更多