搭建Zookeeper集群和Kafka集群详细步骤

单机部署请参考Linux安装部署zookeeper、kafka
三台服务器信息:

  1. 192.168.183.53
  2. 192.168.183.55
  3. 192.168.183.62

开始搭建

一、搭建zookeeper集群

目录/data/tools

1.部署第一台zookeeper

解压
tar -zxvf zookeeper-3.4.10.tar.gz 
zoo.cfg

进入conf文件夹下复制zoo_sample.cfg文件,将副本重命名为zoo.cfg。
在这里插入图片描述

修改zoo.cfg

修改zoo.cfg文件,如下:并创建出对应文件夹data、logs。
在这里插入图片描述

在这里插入图片描述

myid文件

在data文件夹下新建myid文件,写入1
在这里插入图片描述
同样的对第二台和第三台进行同样的操作,注意目录的修改,和myid文件

2.第二台zookeeper

在这里插入图片描述

3.第三台zookeeper

在这里插入图片描述

4.启动

  1. 启动第一台zookeeper:
    在这里插入图片描述

  2. 启动第二台zookeeper:
    在这里插入图片描述

  3. 启动第三台zookeeper:
    在这里插入图片描述

5.查看zookeeper集群运行状态

第一台:
在这里插入图片描述
第二台:
在这里插入图片描述
第三台:
在这里插入图片描述
zookeeper集群启动成功!

注意: 启动第一台后查看状态是没有启动成功的,这是因为我们的集群是三胎,只有一台运行时集群是无法运行的,需要超过半数以上的zookeeper运行集群才会正常运行!

二.搭建kafka集群

1.部署第一台Kafka

解压
tar -zxvf kafka_2.11-0.11.0.0.tgz

在这里插入图片描述

1. 修改server.properties配置文件

进入kafka/config目录修改server.properties
首先修改服务端配置文件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建出对应目录data:
在这里插入图片描述

到这里就完成第一台的部署了。
注意:
listeners:
是kafka真正bind的地址
advertised.listeners:
是暴露给外部的listeners,如果没有设置,会用listeners

对第二台、第三台进行同样的操作,注意broker.id的修改,和对应目录的创建!

2.第二台kafka


注意修改对应的brokers.id、ip、目录路径。

3.第三台kafka


注意修改对应的brokers.id、ip、目录路径。

4.启动kafka集群

进入bin目录:
启动:

./kafka-server-start.sh ../config/server.properties

后台启动:

./kafka-server-start.sh -daemon ../config/server.properties

查看主题:

./kafka-topics.sh --list --zookeeper 192.168.183.53:218

创建主题:

./kafka-topics.sh --create --zookeeper 192.168.183.53:2181 --topic first --partitions 2 --replication-factor 1

生产消息:

./kafka-console-producer.sh --broker-list 192.168.183.53:9092 --topic first

消费消息:

./kafka-console-consumer.sh --bootstrap-server 192.168.183.53:9092 --topic first --from-beginning

5.kafka集群运行效果

创建一个主题 first
查看主题
在这里插入图片描述
注意:
我们在第一台kakfa上创建的主题,在另外两台kafka也可以看见:
在这里插入图片描述
在这里插入图片描述

第一台服务器 生产消息 并进行消费:
在这里插入图片描述

在第一台kafka上生产消息,在另外两台上可以消费到第一台生产的消息:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、效果

在其中一台kafka创建的主题,在另外两台服务器上也有;
在其中一台kafka生产的信息,另外两台也可以消费;

四、springboot的yml配置文件

server:
  port: 8080
spring:
  #============== kafka ===================
  # 指定kafka 代理地址,可以多个
  kafka:
#   指定kafka server的地址,集群配多个,中间,逗号隔开
    bootstrap-servers: 192.168.183.53:9092,192.168.183.55:9092,192.168.183.62:9092
#   生产者配置
    producer:
#     指定消息key和消息体的编解码方式
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
#   消费者配置
    consumer:
      group-id: hw-data-group #群组ID
      enable-auto-commit: true
      auto-commit-interval: 1000
#     指定消息key和消息体的编解码方式
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
logging:

最后、Bug

最后,启动的时候连接kafka集群超时,可能是因为以下这个原因:
在这里插入图片描述

2020-09-03 15:28:06.611  WARN 3268 --- [ntainer#1-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-2, groupId=hw-data-group] Connection to node -1 could not be established. Broker may not be available.
2020-09-03 15:28:06.613  WARN 3268 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-1, groupId=hw-data-group] Connection to node -1 could not be established. Broker may not be available.



2020-09-03 15:11:53.875 ERROR 3271 --- [           main] o.s.k.support.LoggingProducerListener    : Exception thrown when sending a message with key='null' and payload='2020-09-03T15:10:53.783' to topic first:


解决方法:
修改hosts文件,映射主机名

hostname

vim /etc/hosts
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值