kafka集群安装实战

在生产环境中,一般会使用集群版的kafka,kafka是通过zookeeper实现集群的,所以zookeeper本身也应该是高可用的,不过在本文中,zookeeper是单实例。

所有的kafka broker的都要连接zookeeper,这样才能知道其他broker节点的存在,才能成为一个集群。

本文安装的是三节点集群,安装之前有两个问题说明下。第一个问题就是如果出现org.apache.zookeeper.server.NIOServerCnxn错误,说明zookeeper限制了客户端连接数,一般情况下将maxClientCnxns参数改大一点即可。

第二如果出现Error connecting to node错误,说明broker无法解析主机的名称,这个一般需要修改kafka的listeners配置,建议配置为内网ip地址,由于是内网,集群就能互相通信。

为了配置三节点集群,三台机器的配置大约如下:

broker.id=编号
listeners=PLAINTEXT://内网IP:9092
log.dirs=/data/kafka
zookeeper.connect=内网IP:2181

注意只要有一台机器启动zookeeper即可。另外如果broker.id变化,需要删除log.dirs对应的目录。

集群中每个节点启动后就可以测试了。

首先是创建一个主题:

$ kafka-topics.sh --create --bootstrap-server 172.16.120.10:9092 --replication-factor 3 --partitions 1 --topic test

其中replication-factor表示有三个副本(包含leader副本),一个分区。

然后看看主题的具体信息:

$ kafka-topics.sh --describe --bootstrap-server 172.16.120.10:9092 --topic test

Topic: test  PartitionCount: 1       ReplicationFactor: 3
Topic: test516  Partition: 0  Leader: 3    Replicas: 3,1,2 Isr: 3,1,2

可以看出第三个节点是主分区,针对test话题来说

接下去生产一条消息

$ kafka-console-producer.sh --bootstrap-server 172.16.120.10:9092 --topic test

最后消费一条消息:

$ kafka-console-consumer.sh --bootstrap-server 172.16.120.10:9092 --from-beginning --topic test  --partition 0

别忘记输入—partition参数。

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章