![](https://csdnimg.cn/release/download_crawler_static/87523918/bg1.jpg)
基于开源框架的全网拨测系统设计
随着网络技术飞速发展,采用 B/S 架构网络应用成为企业信息化主流技术,为我们提供随时
随地免安装应用,但分布式应用也存在服务无法访问、打开速度缓慢、服务异常等等的问题,
造成用户体验不佳的问题等使用上的困扰。因此,如何获取真实用户体验数据便显得尤为重
要。全网拨测系统是一套分布式的网络性能监控系统,通过对用户的业务感知,来获取用户
“真实体验”信息,为网络维护人员提供最直接最科学的维护依据,本文介绍的探针系统即是
模拟用户请求以进行数据采集的系统。
全网拨测系统设计
全网拨测系统是基于 C/S 的分布式网络监测系统。本系统由三部分组成:前端、中心服务器,
以及探针。前台负责所有的用户交互过程以及各类数据呈现,是整个系统与各种类型的用户
打交道的窗口。前台服务器主要由负责用户界面的 web 服务器和负责客户端接口的 API 服务
器构成。用户界面:以 WEB 形式向用户提供监控分析平台的各种功能的使用界面,包括对平
台的管理,提供数据的可视化展现。不同的用户角色对应不同的用户界面。API 接口:提供
开发的 API 接入服务,为各类客户端提供便捷、高效、一致、安全的接入方式。也为后续可
能的第三方接入提供必要条件。中心服务器是整个系统的核心,几乎所有的业务逻辑的控制
和执行都是由它完成。中心服务器作为核心的三个模块分别是:任务管理、模型管理、资源
管理,这三个模块负责中心服务器的三大核心功能。任务管理:对测试任务运行中的各个过
程进行跟踪和管理。包括测试任务的分发、启动、监控、告警等等。模型管理:测试模型定
义了测试过程中的各个细节,模型管理模块负责测试模型的定义、条件检测、以及模型的存
储。资源管理:该模块负责管理整个系统的各类资源,包括各个探针和探针能够提供各项服
务,以及其他可用资源。探针作为客户端,通过模拟用户对目标服务器的访问,获取目标服
务器的连接状态信息,并将信息发送到中心服务器;中心服务器根据用户的需求对探针收集
到的原始数据进行分析统计,从而实现对目标服务器的监测。
拨测探针设计
探针采用模块化开发,各模块职责明确,相互独立,通过内部接口交互信息,各模块的改变
不会影响其他模块的结构。该架构在解决当前业务需求和管理需求的前提下,充分考虑将来
会出现的需求变化,为后序系统升级、扩展以及与其他应用系统的互通接口提供了快速响应
和良好的扩展能力。
探针端的主要工作包括 1)连接服务器,接受服务器的命令,完成命令解析,并根据不同类
型的命令执行相应的操作,例如启动监控任务、停止监控任务;2)完成对监控任务列表的
数据采集工作;3)将监测到的结果数据发送回服务器。
其中通信模块是探针和服务器交互的接口。通信模块接收服务器的命令,并将命令发送到控
制模块,控制模块解析命令。如果是启动任务,就重新创建一个监控任务,并将监控任务存
储到任务队列中;如果是停止任务,就将该任务从任务队列里移除。当队列中的监控任务被
调度后,就会调用数据收集模块对应子模块的 API 接口,完成一次数据收集动作,同时将该
监控任务重新放入队列中(因为任务是每隔固定时间执行一次)。收集到的数据先不发送到
服务器,而是分类暂时存放到内存中。报告模块会定时从缓存模块获取所有数据,并将数据
通过通信模块发送到服务器,同时将缓存模块清空。下面对各个模块进行详细介绍:
通信模块
通信模块是服务器和探针之间信息交换的接口,负责将服务器的命令发送到探针,并且把探
针的监测结果数据发送回服务器。通信模块基于 JAVA 序列化,实现服务器和探针端全双工
的传输数据。系统中采用了通过 MINA 网络通信应用框架,实现了开放 API 的方式,将真正
的网络通信与应用程序隔离开来,服务器和探针只需要关心要发送、接受的数据以及业务逻