Kafka 集群搭建 for mac

Kafka集群搭建

Posted by Oumuv on December 6, 2018

环境要求

  • kafka2
  • mac或linux

步骤

一、在mac中安装kafka

参考kafka 安装 for mac

配置一下kafka的环境变量:

sudo vim /etc/profile

加入配置

export KAFKA_HOME=/usr/local/Cellar/kafka/2.1.0
export PATH=.:$PATH:$KAFKA_HOME/bin

刷新一下配置

source /etc/profile

二、启动zookeeper

可以直接使用kafka默认的zookeeper:

zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties &

三、配置kafka

假设我们只搭建三个kafka集群,那么我们积极需要给这三个kafka配置server.properties

  1. 复制两份server.properties

    cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server1.properties
    cp /usr/local/etc/kafka/server.properties /usr/local/etc/kafka/server2.properties

  2. 分别修改server1.properties、server2.properties
修改位置 server.properties server1.properties server2.properties
broker.id broker.id=0 broker.id=1 broker.id=2
listeners listeners=PLAINTEXT://:9092 listeners=PLAINTEXT://:9093 listeners=PLAINTEXT://:9094
log.dir log.dir=/usr/local/var/lib/kafka-logs-1 log.dir=/usr/local/var/lib/kafka-logs-2 log.dir=/usr/local/var/lib/kafka-logs-3
  1. 启动三个kafka

    kafka-server-start /usr/local/etc/kafka/server.properties &
    kafka-server-start /usr/local/etc/kafka/server1.properties &
    kafka-server-start /usr/local/etc/kafka/server2.properties &

  2. 创建一个有三个副本的topic

    kafka-topics –create –zookeeper localhost:2181 –replication-factor 3 –partitions 1 –topic mytopic

  3. 使用describe命令查看topic的信息

    kafka-topics –describe –zookeeper localhost:2181 –topic mytopic

“leader”:该集群中broker.id=2 的 kafka是 leader,leader负责数据的读取、同步
“replicas”:存在的节点列表(包含已经挂掉的)
“isr”:“同步备份”的节点列表(不包含已经挂掉的,也就是活着的节点并且正在同步leader)。

测试

由上图可知当前的leader是broker.id为2的kafka服务器,下面测试将当前的leader杀死

杀死一个id为2的kafka,模拟当前leader服务器宕机

解释上图:
Leader:0:当旧的leader挂掉之后马上重新选举出一个新的leader(broker.id为0的kafka)
Isr:0,1:将已经挂掉的kafka去除同步备份的节点列表