三台虚拟机搭建kafka集群(和zookeeper集群)

如果是为了简单的调试,安装单机版kafka也是可以的。不过生产环境肯定是需要搭建集群,所以这篇博客是记录在本地虚拟机尝试搭建kafka的集群,为生产做准备。
环境介绍:


一、环境介绍
  1. 三台VMware上的centos7:
    192.168.220.129
    192.168.220.130
    192.168.220.131
    先在第一台上做好前期准备工作,然后克隆生成后两台
  2. jdk8:java -version
    我用的是系统自带的:
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
二、Zookeeper集群

kafka依赖zookeeper,所以我们需要先搭建zookeeper集群。

  1. 创建文件夹
mkdir zookeeper
mkdir zookeeper/zkdata
mkdir zookeeper/zkdatalog
  1. 下载zookeeper
    进入文件夹:cd zookeeper
    推荐直接在阿里巴巴开源镜像站下载
    wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
  2. 解压
    tar -zxvf zookeeper-3.4.13.tar.gz
  3. 复制一份配置文件:zoo.cfg
cd zookeeper-3.4.13/conf
cp zoo_sample.cfg zoo.cfg
  1. 编辑配置文件vim zoo.cfg
#心跳间隔
tickTime=2000
#其他服务器连接到Leader时,最长能忍受的心跳间隔数:10*2000 = 20秒
initLimit=10
#发送消息时,多长忍受心跳间隔数:5*2000 = 10秒
syncLimit=5
#快照日志
dataDir=/root/myapp/zookeeper/zkdata
#事务日志
dataLogDir=/root/myapp/zookeeper/zkdatalog
#客户端连接zookeeper服务器的端口
clientPort=2181
#可以待后续克隆完剩下两台后,再写上其他两台的ip
server.1=192.168.220.129:2888:3888
server.2=192.168.220.130:2888:3888
server.3=192.168.220.131:2888:3888
  1. 克隆该虚拟机,你也可以把kafka的准备工作做好后,再统一克隆
    如果你已经有多台机子,则可跳过该步骤
    软件VMware中,关闭虚拟机后,右键点击对应虚拟机>>管理>>克隆
    为了不必要的麻烦,记得选择:
    克隆虚拟机
  2. 修改每台虚拟机里的zookeeper的zoo.cfg文件中的server ip信息
    查看本机ip:ifconfig
  3. 创建myid文件,对应zoo.cfg里的server.1、server.2、server.3
#server1
echo "1" > xxxxxxxx/zookeeper/zkdata/myid
#server2
echo "2" > xxxxxxxx/zookeeper/zkdata/myid
#server3
echo "3" > xxxxxxxx/zookeeper/zkdata/myid
  1. 启动
  • 每一台:./bin/zkServer.sh start
  • 查看状态:./bin/zkServer.sh status
    查看状态
  • 如果状态异常,可以查看当前目录下的zookeeper.out日志文件
  1. 停止:./bin/zkServer.sh stop
三、kafka集群
  1. 创建文件夹mkdir kafka
  2. 下载
    与zookeeper一样,推荐到阿里巴巴开源镜像站下载
    wget https://mirrors.aliyun.com/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
  3. 解压
    tar -zxvf kafka_2.12-2.1.0.tgz
  4. 修改配置文件
    vim kafka_2.12-2.1.0/config/server.properties
    主要修改如下:
#分别是1/2/3!!!!!!!!!!!
broker.id=3
#对应ip
listeners=PLAINTEXT://192.168.220.131:9092
#对应ip
advertised.listeners=PLAINTEXT://192.168.220.131:9092
#zookeeper集群地址
zookeeper.connect=192.168.220.129:2181,192.168.220.130:2181,192.168.220.131:2181
  1. 启动
    ./bin/kafka-server-start.sh -daemon ./config/server.properties
  • 控制台查看日志
    ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.220.129:9092 --topic kafka-topic
  • 如果正常的话,则应该不会有任何输出信息
    如果不正常,可查看详细日志文件:
    tail -fn 100 logs/server.log
  1. 停止
    ./bin/kafka-server-stop.sh
    OK!
四、Kafka Topic分区
  • 在后续实践中才了解到分区的事情,简而言之,为了让不同的消息往不同的kafka server发送消息,实现负载均衡
  • 我们在创建Topic时,需要指定分区数
    ./bin/kafka-topics.sh --create --zookeeper zookeeper_ip1:2181,zookeeper_ip2:2181,zookeeper_ip3:2181 --replication-factor 3 --partitions 3 --topic your_topic
    建议分区数为server个数的整数倍
  • 或者修改分区
    ./bin/kafka-topics.sh --alter --zookeeper 10.12.4.38:2181,10.12.4.39:2181,10.12.4.40:2181 --topic kafka-new-topic --partitions 3
  • client在发送消息时,指定往某个分区发送
  • 查看指定分区的日志,例如分区:2
    ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.220.129:9092 --topic your_topic --partition 2
五、其它常用命令
  • 查看所有topic
    bin/kafka-topics.sh --zookeeper node01:2181 --list
  • 查看某个topic信息
    bin/kafka-topics.sh --zookeeper node01:2181 --describe --topic your_topic
  • 控制台发送消息
    bin/kafka-console-producer.sh --broker-list {kafka-ip1}:9092 --topic your_topic
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容