kafka_2.11-0.11.0.1集群搭建

Posted A周立SpringCloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka_2.11-0.11.0.1集群搭建相关的知识,希望对你有一定的参考价值。

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

一、准备工作

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


    1. unzip kafka_2.11-0.11.0.1.zip

    2. kafka_2.11-0.11.0.1

  2. Kafka目录结构:

    展示如下内容:


    1. .

    2. ├── LICENSE

    3. ├── NOTICE

    4. ├── bin

    5. ├── config

    6. ├── libs

    7. ├── logs

    8. └── site-docs

    9. cd kafka_2.11-0.11.0.1

    10. tree -L 1

二、搭建Zookeeper集群

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

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


    1. server.properties                    kafka配置文件

    2. zookeeper.properties                zookeeper配置文件

  2. 修改 zookeeper.properties :

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


    1. initLimit=10

    2. syncLimit=5

    3. clientPort=2181                            # zookeeper端口

    4. maxClientCnxns=0                        # 单个客户端与单台服务器之间的连接数的限制

    5. server.1=IP1:2888:3888        # server.x中的x要与myid中的数字一致,2888用于follower与leader之间的数据同步与其他通信;3888用于leader选举时的通信。

    6. server.2=IP2:2889:3889

    7. server.3=IP3:2890:3890

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


    1. cd /Users/apple/Desktop/zookeeper

    2. vim myid

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


    1. cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录

    2. nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

  5. 观察启动日志,确认启动无误。


三、搭建Kafka集群

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

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

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


    1. broker.id=1                        # kafka broker的id,三个节点不能相同

    2. listeners=PLAINTEXT://:9094        # kafka所使用的端口

    3. log.dir=/tmp/kafka-logs            # kafka日志路径

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


    1. cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录

    2. bin/kafka-server-start.sh config/server-cluster.properties &

  3. 观察启动日志,确认启动无误。


四、验证Kafka集群正常工作


    1. bin/kafka-topics.sh --create --zookeeper xxx,yyy,zzz --replication-factor 3 --partitions 1 --topic my-replicated-topic

  1. 我们现在已经搭建了一个Kafka集群,并创建了一个Topic,但我们如何知道每个broker在做什么呢?可使用 describe topics 命令:

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

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

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

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


    1. bin/kafka-topics.sh --describe --zookeeper xxx,yyy,zzz --topic my-replicated-topic

    2. Topic:my-replicated-topic    PartitionCount:1    ReplicationFactor:3 Configs:

    3.   Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,3,2 Isr: 1,3,2

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

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

  1. 创建一个生产者:


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


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


五、界面管理

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

六、参考文档

  • Kafka官方文档:http://kafka.apache.org/quickstart

  • Kafka 0.9集群搭建文档:http://blog.csdn.net/gongxinju/article/details/53415051


以上是关于kafka_2.11-0.11.0.1集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

windows下kafka配置入门 示例

Kafka基本操作

kafka安装部署

kafka_2.12-2.2.1 集群搭建

Kafka:ZK+Kafka+Spark Streaming集群环境搭建安装kafka_2.11-1.1.0

kafka环境搭建 02kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 kafka 集群)