您的位置 首页 golang

Kafka 集群 Golang 应用实例

这个实例做了些什么?

  1. 搭建了拥有 3 节点 kafka、 3 节点 zookeeper 的 docker 集群服务;
  2. 分别创建了 1 个消息发布者和 2 个相同消费组的消息订阅者的 docker 应用;
  3. 使用 ab 进行并发测试,验证该实例消息的订阅 / 发布功能;

通过这个实例,能够了解些什么?

  • 使用 Docker Compose 构建 Kafka 集群
  • 使用 Golang 创建 Kafka Pub/Sub 实例
  • 使用 ApacheBench 进行并发测试
  • 使用 Makefile 简化构建操作命令

如果这个实例,对你了解 kakfa 有所帮助,请为项目添加 star★,非常感谢!

接下来为大家进行项目介绍,想要进一步详细请教的,欢迎在文末获取项目地址为项目添加star。

项目获取:

 $ git clone --depth=1   

项目依赖工具:

  • Make
  • Kafkacat
  • ApacheBench

支持 make 构建:

 
$ make

Choose a command run in kafka_cluster_example:

Usage: make [target]

Valid target values are:

vendor                  Auto generate go vendor dir.
up                      Docker compose up for src.
down                    Docker compose down for src.
ps                      Docker compose ps for src.
logs                    Docker compose logs for src.
clean                   Clean up docker images for src.
test                    Apache benchmark test for src.
kafka-up                Docker compose up for kafka services.
kafka-down              Docker compose down for kafka services.
kafka-clean             Clean up log and data files for kafka services.
kafka-test              Check running state of the kafka service.
help                    print this help message and exit.  

1、配置 hosts 域名

使用 ifconfig -a 查看本地IP地址;

配置 /etc/hosts 文件,将域名 kfk1、kfk2、kfk3 映射到当前本地 IP 地址,例如;

 # 假设本地IP为: 192.168.0.166192.168.0.166 kfk1 kfk2 kfk3  

2、构建 Kafka 集群

 # docker compose 构建方式:
$ docker-compose -f kafka/docker-compose.yml up -d

# 或使用 make 构建方式:
$ make kafka-up  

如若在构建下载过程中,出现等待连接超时,可尝试在 docker 的 daemon.json 中添加注册镜像:

 
{
    "registry-mirrors":["#34;]
}  

若构建完成,可使用 kafkacat 检测服务是否正常运行:

 # 直接进行检测验证:
$ kafkacat -L -b kfk1:19092

# 或使用 make 方式验证:
$ make kafka-test  

3. 构建 Produce & Consume 服务

为 produce 和 consume 生成 vendor 依赖:

 $ make vendor  

构建 Produce & Consume Docker 服务

 # 使用 docker compose 直接构建方式:
$ docker-compose -f src/docker-compose.yml up -d

# 或者使用 make 构建方式:
$ make up  

4. 最终测试

使用 ApacheBench 进行并发测试(并发数为10,总计100个请求):

 # 直接使用 ab 命令进行测试:
$ ab -n100 -c10 -T application/json -p test/ab_post_test.json 

# 或者使用 make 方式测试:
$ make test  

项目地址:

文章来源:智云一二三科技

文章标题:Kafka 集群 Golang 应用实例

文章地址:https://www.zhihuclub.com/98454.shtml

关于作者: 智云科技

热门文章

网站地图