MeterSphere 微服务架构组件说明

MeterSphere 微服务架构组件说明

2022 年10 月,MeterSphere 一站式开源持续测试平台正式发布 v2.3.0 版本,正式从单体应用架构升级至微服务架构。相较之前单体应用架构的各种弊端如:单个服务故障会导致整体服务不可用、系统启动慢、无法满足用户按需配置、服务组件水平扩展难和工程代码难以维护等问题。微服务架构将各个模块的功能应用拆分为不同的组件,便于快速构建、扩展及维护。现详细介绍下 MeterSphere 微服务架构各个组件的具体用法及维护注意事项。

一、 架构说明

微服务架构图:

各个微服务组件的运行状态:


从上图中可以看出,MeterSphere微服务架构下的组件分为基础运行组件及功能组件两种:

(一) 服务运行组件:

● GateWay: API 网关项目。作为微服务架构常用网关,主要用来统一各个微服务的入口(如MeterSphere 统一访问端口8081);按照系统权限请求避免请求直接调用各个微服务;并针对客户端请求到服务过程做负载均衡:当请求流量过高时,在网关中按照下流微服务能够接受的速度来放行请求,避免服务压力过大。

● Eureka: 服务注册中心。在 MeterSphere 功能模块组件启动之后,会在 Eureka Server 中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务组件的信息,方便做各组件请求互通及数据传递。

● MinIO: MeterSphere 项目的分布式对象存储模块。非常适合于存储大容量非结构化的数据,例如使用MeterSphere 系统上传的的图片、视频、测试文件、jar包、插件。MeterSphere 各个功能模块上传的测试文件,jar包等都会汇集在项目设置-文件管理模块;集中存储在 MinIO 中。

● MySQL: MeterSphere 项目的主要数据均存储在 MySQL 中,微服务架构使用Mysql8.0。

● Redis: MeterSphere 项目登录用户的 Session 信息及页面数据查询的缓存和执行的资源池节点缓存;Redis 大多都在内存中,基本不会写到磁盘。

● Workstation: MeterSphere 项目的工作台模块。包含工作台所有代码。

● Test Track: MeterSphere 项目的测试跟踪模块。包含测试跟踪所有代码。

● Api Test: MeterSphere 项目的接口测试模块。包含接口测试所有代码。

● Ui Test: MeterSphere 项目的UI 测试模块。包含UI测试所有代码。

● Selenium Grid: 为 UI 自动化测试提供运行环境,支持分布式拓展。Selenium Grid 的架构特点,天生就能很好地支持测试用例的并发执行。

● Performance Test: MeterSphere 项目的性能测试模块。包含性能测试所有代码。

● Node Controller: 为接口或者性能测试提供独立节点类型的测试资源池。测试执行时候会下载对应测试脚本调起Jmeter运行测试。

● Kafka: 接收 JMeter 产生的接口测试或者性能测试的结果数据及消息通知信息。kafka 未及时消费掉的消息会写到磁盘。

● Prometheus: 收集压力机及被测系统的监控数据。如需查看 Prometheus 详细资源监控情况可访问ip:9090/targets 查看。

● Data Streaming: 从 Kafka 中获取接口测试或者性能测试结果数据进行处理后存入 MySQL 数据库作为测试报告展示输出。

● Nodeexporte:收集监控信息的,Nodeexporter 把收集到的被监控资源的信息传递给 Prometheus 集中处理显示。

● System Setting: MeterSphere 项目的系统设置模块,包含项目的报告统计所有代码

● Report Stat: MeterSphere 项目的报告统计模块,包含项目的报告统计所有代码。

● Project Management: MeterSphere 项目的项目设置模块,包含项目设置所有代码。

(二) 功能组件两种

● Chrome 浏览器插件: Chrome 浏览器插件, 录制 Web 访问请求生成 JMeter 脚本并导入到 MeterSphere 中用于接口测试及性能测试。推荐 Chrome 80 以上内核浏览器使用。下载地址:

https://github.com/metersphere/chrome-extensions

● Jenkins 插件: Jenkins 插件,在 Jenkins 中安装该插件后可将 Jenkins 任务中添加 MeterSphere 构建环节,用户在该构建环节中配置 MeterSphere 平台的认证信息后,可选择指定项目下的接口/性能测试进行触发执行。 注意在使用插件时,插件版本必须和当前使用 MeterSphere 版本一致。下载地址:

https://github.com/metersphere/jenkins-plugin

● IDEA 插件: IDEA 插件,基于 javadoc 解析,能够自动识别类,同步接口定义到 MeterSphere。支持idea内插件在线安装,使用参考:

● 禅道、Jira 的插件:自 v2.4 版本缺陷对接实现了插件化,可根据自身需求开发对应插件 目前已实现 禅道、Jira 平台的插件化,原先使用的用户,需要下载下插件,并在系统设置-插件管理上传插件 使用方式跟原来一致,具体参考插件项目:https://github.com/metersphere/metersphere-platform-plugin

注意在使用插件时,插件版本必须和当前使用 MeterSphere 版本一致。

二、 常见问题

1、 安装过程中遇到容器提示unhealthy状态,查看对应报错模块容器日志,针对报错提示进行处理,常见安装部署问题可以参照官网提示处理,或进入社区交流群找技术人员支持。https://metersphere.io/docs/v2.x/faq/installation/#47-encountered-error-while-bringing-up-the-project-msctl-status-mysql-restarting

2、 安装过程中如容器和现有服务存在端口冲突需要修改,可以进入/opt/metersphere/.env 文件修改相关的配置信息,修改后msctl reload 重新加载配置文件以生效。

image

3、 如需要修改相关组件的基础配置信息,可直接进入/opt/metersphere目录下找到对应组件的docker -compose-xxx.yml文件,保存修改后msctl reload 生效。

更多问题咨询可进入社区交流区寻找技术人员帮助。