Kafka基本原理(一)windows环境下kafka伪分布式集群环境搭建

为了本地测试,又不得不在windows环境下,搭建kafka伪分布式集群,记录一下过程


注意:以下所有目录,都不要出现空格!!!

伪分布式集群节点个数配置:zookeeper 和 kafka  分别3个节点 


 1.前期准备

  1. JDK 1.8 安装并测试;
  2. zookeeper,下载地址:https://zookeeper.apache.org/releases.html;
  3. kafka,下载地址:http://kafka.apache.org/downloads

现在,kafka安装包一般包含Zookeeper,kafka和Zookeeper的对应关系,一般可以找得到,如下图示。

本地测试环境,安装包的版本对应关系

JDK 版本:1.8.0_151;

kafka版本:2.1.0;

Zookeeper版本:3.4.13 

2.Zookeeper伪分布式环境搭建

Kafka中就自带有Zookeeper的服务,但是为了数据的高可用性,最好选择自己搭建Zookeeper集群(官网也给出了同样的建议)

  1. 下载安装包,并解压;
  2. 在zookeeper-3.4.12/conf目录下,把zoo_sample.cfg重命名成zoo.cfg,如下图:

    3.把zookeeper-3.4.12复制3份,用zookeeper-3.4.12A 、zookeeper-3.4.12B、zookeeper-3.4.12C进行区分;

    4.修改zoo.cfg配置文件

zookeeper-3.4.12A中的zoo.cfg配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/BDLTools/Zookeeper/Data/1
dataLogDir=D:/BDLTools/Zookeeper/DataLog/1
clientPort=2181
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

zookeeper-3.4.12B中的zoo.cfg配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/BDLTools/Zookeeper/Data/2
dataLogDir=D:/BDLTools/Zookeeper/DataLog/2
clientPort=2182
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

 zookeeper-3.4.12C中的zoo.cfg配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/BDLTools/Zookeeper/Data/3
dataLogDir=D:/BDLTools/Zookeeper/DataLog/3
clientPort=2183
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

配置文件说明:

服务器之间或客户端与服务端之间维持心跳的时间。就是每隔tickTime就会发送一次心跳。单位毫秒

  • tickTime=2000

这个是配置Zookeeper接收客户端初始化连接最长能忍受initLimit心跳时间间隔。

  • initLimit=10

Leader与follow之间发送消息和应答的时间 总时间=syncLimit*tickTime

  • syncLimit=5

zookeeper数据保持路径 默认将log日志也保存在dataDir

  • dataDir

zookeeper log日志保存地址 不设置默认是dataDir

  • dataLogDir

客户端连接的端口

  • clientPort=2181

因为我的集群都是在同一台电脑上配置的,所以这里端口不能一样
知道配置文件里的意思应该就知道如何修改了吧

  • server.1=127.0.0.1:2887:3887
  • server.2=127.0.0.1:2888:3888
  • server.3=127.0.0.1:2889:3889

对于新手我们只需要该以下地方:
dataDir

dataLogDir

clientPort

但是下面的server是Zookeeper配置里需要重点讲解的部分 
上面的格式我们可以简单的总结为 server.num=B:C:D。 
num:是正整数代表的服务的唯一标识。这个要和后面说道的myid文件保持一致。
B: 标识Zookeeper集群中某一个服务的ip或者域名 192.168.1.130

C:表示server.num这个服务于集群中leader进行信息交流的端口。在kafka中我们leader和follower需要进行数据备份。具体服务就是通过这个地方制定的端口进行通信的。

D:表示万一leader宕机了,我们就通过这个端口来进行再follower中选举新的leader。

    5.创建Data、DataLog目录,然后分别在Data和DataLog目录下,分别创建1 、2、3三个文件夹,如下图示:

    在Zookeeper/Data/1目录下,创建myid文件,内容为:1,依次在2文件夹 3文件夹下创建myid,内容分别为2  3.

myid文件创建过程:在linux系统下,这是十分常见的命令,windows下,可以先创建txt文件,之后文件重命名,把.txt去掉;

myid存放位置说明:myid应该放在我们conf/zoo.cfg文件中指定的dataDir ​​​​;

   6.编辑/zookeeper-3.4.12A/bin/zkServer.cmd文件,

7.验证

分别启动三个zkServer.cmd,并使用cmd命令切换到任意一个/bin目录下,执行命令 zkCli.cmd  -server localhost:2181如下图:

出现  zk: localhost:2181<connected> 0 : 说明服务连接成功,也说明搭建的zk服务成功

3.kafka伪分布式环境搭建

 1.下载kafka包,并解压,复制三份,如下图示;

 2.修改config目录下server.properties配置文件

配置文件修改内容:

kafka2.1A/config/server.properties修改内容:

# 以下几个配置是需要修改的,其余保持默认即可
broker.id=1
listeners=PLAINTEXT://127.0.0.1:9092
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
log.dirs=D:/BDLTools/Kafka/Logs/1

kafka2.1B/config/server.properties修改内容:

# 以下几个配置是需要修改的,其余保持默认即可
broker.id=2
listeners=PLAINTEXT://127.0.0.1:9093
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
log.dirs=D:/BDLTools/Kafka/Logs/2

kafka2.1C/config/server.properties修改内容:

# 以下几个配置是需要修改的,其余保持默认即可
broker.id=3
listeners=PLAINTEXT://127.0.0.1:9093
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
log.dirs=D:/BDLTools/Kafka/Logs/3

配置说明:

  • broker.id在每个节点上是唯一的,在分布式集群中,有几个机器中安装了Kafka,那么那几个机器中的Kafka的broker.id一定是不同的,在伪分布式集群中,每个server.properties配置文件中的broker.id都是不同的
  • listeners 监听端口号,因为是伪分布式,端口号必须修改
  • log.dirs指定的kafka中的数据的存放位置,默认的tmp目录会定期清空,所以需要修改,而且指定的目录需要在启动kafka集群之前创建好
  • zookeeper.connect如果不指定,将使用kafka自带的zookeeper

 3.启动

先启动Zookeeper伪分布式集群;

通过cmd命令分别进入kafka2.1A/bin  kafka2.1B/bin  kafka2.1C/bin目录,执行如下命令

.\bin\windows\kafka-server-start.bat .\config\server.properties

4.展示

 基本搭建完成,可以通过项目调用测试

 

参考:

Kafka集群配置---Windows版

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值