kafka_2.11-0.11.0.1集群搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
日志服务 SLS,月写入数据量 50GB 1个月
云原生网关 MSE Higress,422元/月
简介: 本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。一、准备工作解压kafka安装包,获得如下目录:unzip kafka_2.

本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。

一、准备工作

  1. 解压kafka安装包,获得如下目录:

    unzip kafka_2.11-0.11.0.1.zip
    kafka_2.11-0.11.0.1
    
  2. Kafka目录结构:

    cd kafka_2.11-0.11.0.1
    tree -L 1
    

    展示如下内容:

    .
    ├── LICENSE
    ├── NOTICE
    ├── bin
    ├── config
    ├── libs
    ├── logs
    └── site-docs
    

二、搭建Zookeeper集群

  1. 将目录切换到Kafkaconfig 目录,要修改的主要是server.properties以及zookeeper.properties两个配置文件。

    server.properties                    kafka配置文件
    zookeeper.properties             zookeeper配置文件
    

    对Kafka感兴趣的童鞋们可前往 https://www.cnblogs.com/jun1019/p/6256371.html 了解Kafka常用配置属性详解。

  2. 修改zookeeper.properties

    initLimit=10
    syncLimit=5
    dataDir=/Users/apple/Desktop/zookeeper  # zookeeper的快照存储地址
    clientPort=2181                          # zookeeper端口
    maxClientCnxns=0                     # 单个客户端与单台服务器之间的连接数的限制
    server.1=IP1:2888:3888       # server.x中的x要与myid中的数字一致,2888用于follower与leader之间的数据同步与其他通信;3888用于leader选举时的通信。
    server.2=IP2:2889:3889
    server.3=IP3:2890:3890
    

    Zookeeper配置详解可参考:http://blog.csdn.net/lengzijian/article/details/9226867

  3. 将目录切换到dataDir 目录,并创建myid文件,内容分别是1、2、3。注意myid的内容要与server.x 中的x相一致。

    cd /Users/apple/Desktop/zookeeper
    vim myid
    
  4. 三台机器都配置好zookeeper.properties 并创建myid 文件后,即可进行测试。依次在三台机器上执行如下命令,即可启动Zookeeper集群。

    cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录
    nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
    
  5. 观察启动日志,确认启动无误。

三、搭建Kafka集群

搭建完Zookeeper集群后,Kafka集群的搭建就完成了一大半。下面我们来搭建Kafka集群:

  1. 在Kafka的config目录下创建文件server-cluster.properties ,在其中填写如下内容:

    broker.id=1                      # kafka broker的id,三个节点不能相同
    listeners=PLAINTEXT://:9094      # kafka所使用的端口
    log.dir=/tmp/kafka-logs          # kafka日志路径
    zookeeper.connect=xxx,yyy,zzz    # Zookeeper集群的地址列表,IP:PORT的形式,多个用,分隔
    

    当然,这里server-cluster.properties 名称不是强制的,你可以叫其他名字;不仅如此,也可直接修改server.properties

  2. 依次在三台机器执行如下命令,启动Kafka

    cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录
    bin/kafka-server-start.sh config/server-cluster.properties &
    
  3. 观察启动日志,确认启动无误。

四、验证Kafka集群正常工作

  1. 创建一个Topic,其中的xxx、yyy、zzz是Zookeeper的地址,形式为IP:PORT

    bin/kafka-topics.sh --create --zookeeper xxx,yyy,zzz --replication-factor 3 --partitions 1 --topic my-replicated-topic
    
  2. 我们现在已经搭建了一个Kafka集群,并创建了一个Topic,但我们如何知道每个broker在做什么呢?可使用describe topics 命令:

    bin/kafka-topics.sh --describe --zookeeper xxx,yyy,zzz --topic my-replicated-topic
    
    Topic:my-replicated-topic    PartitionCount:1    ReplicationFactor:3 Configs:
     Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,3,2 Isr: 1,3,2
    

    其中,第一行是对所有partition的摘要,每个附加行给出了每个partition的详情,这里只有一个partition,所以只有一行。

    leader是负责给定partition所有读写的节点,每个节点将称为partition随机选择部分的leader。

    replicas是复制此partition日志的节点列表,无论它们是否leader,即使它们处于活动状态。

    isr是一组in-sync 副本,这是replicas列表的子集,这些副本当前活动,并被引导到leader。

    笔者按:isr常被翻译成“副本同步队列”。

    leader、replicas、isr可参考:https://www.cnblogs.com/mengyou0304/p/4836555.html

  3. 创建一个生产者:

    bin/kafka-console-producer.sh --broker-list kafka集群地址列表 --topic my-replicated-topic
    

    地址为IP:PORT的形式,多个用逗号分隔

  4. 另启一个窗口,创建消费者:

    bin/kafka-console-consumer.sh --bootstrap-server kafka地址 --from-beginning --topic my-replicated-topic
    

    kafka地址为IP:PORT的形式,为Kafka集群中的任意一个节点。

  5. 在生产者窗口输入任意文字,看在消费者窗口能否接收。如果能正常接收,说明Kafka集群搭建成功。

五、界面管理

参考笔者博客Kafka Manager管理Kafka集群:http://www.itmuch.com/work/kafka-manager/

六、参考文档

目录
相关文章
|
7月前
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
1531 2
2024年了,如何更好的搭建Kafka集群?
|
1月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
78 4
|
2月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
66 2
|
1月前
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
|
2月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
80 6
|
7月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
204 0
|
4月前
|
消息中间件 Kafka 测试技术
【Kafka揭秘】Leader选举大揭秘!如何打造一个不丢失消息的强大Kafka集群?
【8月更文挑战第24天】Apache Kafka是一款高性能分布式消息系统,利用分区机制支持数据并行处理。每个分区含一个Leader处理所有读写请求,并可有多个副本确保数据安全与容错。关键的Leader选举机制保障了系统的高可用性和数据一致性。选举发生于分区创建、Leader故障或被手动移除时。Kafka提供多种选举策略:内嵌机制自动选择最新数据副本为新Leader;Unclean选举快速恢复服务但可能丢失数据;Delayed Unclean选举则避免短暂故障下的Unclean选举;Preferred选举允许基于性能或地理位置偏好指定特定副本为首选Leader。
95 5
|
4月前
|
消息中间件 监控 Java
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
|
4月前
|
消息中间件 监控 Java
【Kafka节点存活大揭秘】如何让Kafka集群时刻保持“心跳”?探索Broker、Producer和Consumer的生死关头!
【8月更文挑战第24天】在分布式系统如Apache Kafka中,确保节点的健康运行至关重要。Kafka通过Broker、Producer及Consumer间的交互实现这一目标。文章介绍Kafka如何监测节点活性,包括心跳机制、会话超时与故障转移策略。示例Java代码展示了Producer如何通过定期发送心跳维持与Broker的连接。合理配置这些机制能有效保障Kafka集群的稳定与高效运行。
89 2
|
5月前
|
消息中间件 Kafka
kafka 集群环境搭建
kafka 集群环境搭建
74 8

热门文章

最新文章