kafka集群搭建

简要说明

新版本的kafka自带有zookeeper,其实自带的zookeeper完全够用,本篇文章以记录使用自带zookeeper搭建kafka集群。

1、关于kafka

kafka官网:http://kafka.apache.org/

kafka下载页面:http://kafka.apache.org/downloads

kafka配置快速入门:http://kafka.apache.org/quickstart

2、修改kafka配置文件

kafka安装目录下的config文件夹为其配置文件,我们需要修改的有 server.properties和zookeeper.properties。

2.1、修改日志目录

首先修改kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失:

server.properties:
    log.dirs=/tmp/kafka-logs
    修改为
    log.dirs=/usr/local/kafka/logs

zookeeper.properties
    dataDir=/tmp/zookeeper
    修改为
    dataDir=/usr/local/zookeeper/data

2.2、配置kafka

kafka集群为便于推选leader,一般由奇数台服务组件集群,这里以三台为例,分别已xxx.xxx.xxx.xxA、xxx.xxx.xxx.xxB和xxx.xxx.xxx.xxC代表服务的ip。

(服务器IP可使用ifconfig命令查看)

 

修改server.properties:

1、设置broker.id,保证每个broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为1和2

2、设置num.partitions,分区数量一般与broker保持一致

3、设置advertised.listeners和listeners,如listeners=PLAINTEXT://xxx.xxx.xxx.xx:9092

4、设置zookeeper.connect,配置三台服务zookeeper连接地址,如zookeeper.connect=xxx.xxx.xxx.xxA:2181,xxx.xxx.xxx.xxB:2181,xxx.xxx.xxx.xxC:2181

 

修改zookeeper.properties:

1、设置连接参数,添加如下配置

        tickTime=2000
        initLimit=10
        syncLimit=5

 

2、设置broker Id的服务地址

        server.0=xxx.xxx.xxx.xxA:2888:3888
        server.1=xxx.xxx.xxx.xxB:2888:3888
        server.2=xxx.xxx.xxx.xxC:2888:3888

 

zookeeper数据目录添加id配置

在各台服务的zookeeper数据目录添加myid文件,写入服务broker.id属性值,如这里的目录是/usr/local/zookeeper/data

第一台broker.id为0的服务到该目录下执行:echo 0 > myid

 

3、启动kafka

kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper

启动zookeeper:
        bin/zookeeper-server-start.sh config/zookeeper.properties &
启动kafka:
        bin/kafka-server-start.sh config/server.properties &

 

4、测试kafka集群

4.1、在第一台服务上创建test主题

bin/kafka-topics.sh --create --topic test --zookeeper xxx.xxx.xxx.xxA:2181 --replication-factor 3 --partition 3

4.2、展示主题,确认主题创建成功

bin/kafka-topics.sh --list --zookeeperxxx.xxx.xxx.xxA:2181

4.3、创建生产者

bin/kafka-console-producer.sh --broker-listxxx.xxx.xxx.xxA:9092 --topic test

4.4、创建消费者,再另外两台服务上分别创建消费者

bin/kafka-console-consumer.sh --zookeeper xxx.xxx.xxx.xxB:2181 --topic test --from-beginning
bin/kafka-console-consumer.sh --zookeeper xxx.xxx.xxx.xxC:2181 --topic test --from-beginning

4.5、测试消息发布与消费

在IP为xxx.xxx.xxx.xxA的服务生产中输入消息回车发送,确认在服务B和C中的消费者是否接收到

5、其他

如配置完成后需要修改端口或其他配置,但是没有生效,启动报错,可以尝试清楚kafka(/usr/local/kafka/logs)和zookeeper(/usr/local/zookeeper/data)缓存目录的内容然后重新启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值