使用分享|MeterSphere使用外置Kafka集群的方法

发布于 2021年07月28日

以下文章来源于CSDN博客分享,作者为plateauandsp。

MeterSphere 技术架构

组件说明

  • Frontend:MeterSphere的前端工程,基于Vue.js进行开发;
  • Backend:MeterSphere的后端工程,基于Spring Boot进行开发,为MeterSphere的功能主体;
  • Chrome plugin:浏览器插件,录制Web访问请求生成JMeter脚本,并导入到MeterSphere中用于接口测试及能测试;
  • Node controller:为性能测试提供独立节点类型的测试资源池,接收来自系统的性能测试任务,动态地启动JMeter容器完成性能测试;
  • MySQL:MeterSphere项目的主要数据均存储在MySQL数据库中;
  • Kafka:接收JMeter产生的性能测试结果数据;
  • Data streaming:从Kafka中获取性能测试结果数据进行处理后存入MySQL数据库;
  • Docker engine:为Node Controller提供JMeter容器运行环境。

由官网说明可见,Kafka主要用于传递性能测试结果的。但是通过官网一键部署脚本,Kafka是默认使用容器部署的单个实例,没有使用集群模式,正好公司有一套Kafka集群,所以尝试了下配置外置Kafka集群。

注:图及说明均来自MeterSphere:

https://metersphere.io/

具体操作:修改配置文件

首先查询默认安装目录 /opt/metersphere,发现在多个地方均出现了Kafka的配置信息。以ms-server容器为例,在docker-compose-server.yml文件中发现ms-server容器定义了很多个Kafka相关的环境变量;但同时在/opt/metersphere/conf/metersphere.properties中又发现了Kafka相关配置,但相关配置都被注释掉了。

查询Spring Boot关于配置参数的文档,发现同样的参数既可以选择配置在配置文件中,也可以选择配置在环境变量中。比如metersphere.properties文件中的kafka.topic=${MS_KAFKA_TOPIC}这一配置项,对应环境变量的配置方式就是KAFKA_TOPIC=${MS_KAFKA_TOPIC}。

在这里我们通过修改配置文件的方式来使用外部Kafka集群,修改了的配置文件内容如下:

kafka.partitions=50
kafka.replicas=1
#kafka.topic=${MS_KAFKA_TOPIC} 注释不取消,因为docker-compose中还有环境变量
kafka.bootstrapservers=ip1:9092,ip2:9093,ip3:9094
#kafka.log.topic=${MS_KAFKA_LOG_TOPIC} 注释不取消,因为docker-compose中还有环境变量

修改完成后,重启MeterSphere服务,msctl restart 。

服务完全启动后,登录kafka-manager进行查看,发现自动创建了Topic。

在界面进行一次压测,完美解决。

————————————————
版权声明:本文为CSDN博主「plateauandsp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/plateauandsp/article/details/114647803

关于MeterSphere

MeterSphere是FIT2CLOUD飞致云旗下品牌。作为一款一站式的开源持续测试平台( github.com/metersphere ),MeterSphere涵盖测试跟踪、接口测试、性能测试、 团队协作等功能,全面兼容JMeter、Postman、Swagger等开源标准,有效助力开发和测试团队充分利用云的弹性进行高度可扩展的自动化测试,加速高质量的软件交付。

自2020年6月发布至今,MeterSphere开源项目得到了开源社区的广泛认可和积极反馈,并已经在众多企业内落地使用。截至2021年5月,MeterSphere项目在代码托管平台 GitHub上获得了超过4,600个Star和40,000次以上的独立下载。