[Golang] kafka集群搭建和golang版生产者和消费者

一、kafka集群搭建

至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了。

(没安装java环境的需要先安装 yum -y install java-1.8.0-openjdk*)

  1. 启动zookeeper集群(我的示例是3台机器,后面的kafka也一样,这里就以1台代指3台,当然你也可以只开1台)

1)配置zookeeper。 修改复制一份 zookeeper-3.4.13/conf/zoo_sample.cfg 改名成zoo.cfg。修改以下几个参数,改成适合自己机器的。

2) 创建myid文件,确定机器编号。分别在3台机器的 /home/test/zookeeper/data目录执行分别执行命令 echo 1 > myid(注意ip为10.22.1.2把1改成2,见上面的配置)

3) 启动zookeeper集群。分别进入目录 zookeeper-3.4.13/bin 执行 sh zkServer.sh start

  1. 启动kafka集群

1) 配置kafka。进入kafka_2.11-2.2.0/config。复制3份,分别为server1.properties,server2.properties,server3.properties。修改以下几项(注意对应的机器id)

log.dirs和zookeeper.connect 是一样的。broker.id和listeners分别填对应的id和ip

2) 启动kafka集群。分别进入 kafka_2.11-2.2.0/bin目录,分别执行 sh kafka-server-start.sh ../config/server1.properties(第2台用 server2.properties配置文件)

二、Golang生产者和消费者

目前比较流行的golang版的kafka客户端库有两个:

至于谁好谁坏自己去分辨,我用的是第1个,star比较多的。

  1. kafka生产者代码

这里有2点要说明:

1) config.Producer.Partitioner = sarama.NewRandomPartitioner,我分partition用的是随机,如果你想稳定分paritition的话可以自定义,还有轮询和hash方式

2) 我的 topic是走的外部配置,可以根据自己的需求修改

  1. kafka消费者

几点说明:

1) kafka一定要选用支持集群的版本

2) 里面带了 创建topic,删除topic,打印topic的工具

3) replication是外面配置的

4) 开多个consumer需要在 创建topic时设置多个partition。官方的示例当开多个consumer的时候会崩溃,我这个版本不会,我给官方提交了一个PR,还不知道有没有采用

Original: https://www.cnblogs.com/mrblue/p/10770651.html
Author: MrBlue
Title: [Golang] kafka集群搭建和golang版生产者和消费者

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/533965/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球