# jay-monitor-data-web - 数据收集器 ## 后台服务分层 **jay-monitor-data-api** 对外暴露接口层 **jay-monitor-data-client** 客户端集成工具 **jay-monitor-data-core** 核心通用部分封装 **jay-monitor-data-server** 服务启动器: - 控制台访问 - 数据收集计算 - 数据的存储 - Mysql - 表是按照天的纬度划分存储 - 本地文件 - 存储大文本 - 可拓展成自定义的引擎存储 - 告警推送 - 目前默认是钉钉 - 集成OSS文件传输服务 - 目前收集的数据类型 - URL - MQ 开发步骤: 1. 设计表 2. 设计传输实体 3. 构建process包下执行器 4. 构建store包下的存储器 5. 注册配置文件中的拆分器 ## ## 开发注意事项 由于该应用是用的是蚂蚁金服的solt作为传输层,所以性能调整参数需要在启动脚本中配置: ```shell -Dbolt.tp.min=500 -Dbolt.tp.max=1000 -Dbolt.tp.queue=1000 ``` 分别对应: - bolt.tp.min : 核心线最小程池 - bolt.tp.max : 核心线最大程池大小 - bolt.tp.queue : 等待队列大小 > 启动的时候会打印当前应用的使用情况。 比如启动命令: ```shell java -jar -Dbolt.tp.min=500 -Dbolt.tp.max=1000 -Dbolt.tp.queue=1000 jay-monitor-data-server.jar ``` #### 1. 页面存放位置 resource/templates #### 2. 开发介绍 #### 公共页面 base文件夹代表公共页面,由于主页面是采用Iframe构造,所以只需要关心中间页面的开发。 中心页面的公共JS和CSS被独立出来放在了base文件夹下。 引用公共页面参考 ```html ``` > 案例参考 : routeList.html #### 公共js 存放位置 : resources/static/js **elab-common.js** : 封装了前端操作LayUI的一些方法以及文本值的转换工具类。 **elab-config.js** : 后端参数枚举值解码,调用方式参考`elab-common.js` **elab-service-config.js** : 后端服务地址定义 #### 常用的方法使用: ```js // 将后端传过来的数字进行转义成文本,到对应的elab-config中定义 elab_common.getConfigTypeText("route_valid_status", res.isValid) // 获取枚举值中request_method的所有值,渲染到页面id为methodSelect中,展现成下拉框 elab_common.getConfigTypeBySelect("#methodSelect", "request_method", ""); // 获取枚举值中checkRule的所有值,渲染到页面id为checkRuleDiv中,展现成checkbox,第三个参数是默认选中的数组 elab_common.getConfigTypeByCheckBox("#checkRuleDiv", "route_check_rule", "checkRule", checkRule) // 将后端传过来的数据为时间戳的转换成时分秒 elab_common.longConvertDateTime(res.created) // post请求后端地址 elab_common.postReq(urlConfig.route.refreshService, data.field, function (data) {}) ``` Mysql 注意事项: You can change this value on the server by setting the max_allowed_packet' variable. 1. 配置方面希望加大`max_allowed_packet`参数,由于SQL是批量执行的,可以会比较大。 ```mysql [mysqld] max_allowed_packet = 50M # 也可以继续调大点 ``` 查看配置: ```sql show variables like '%max_allowed_pack%'; ``` ##### 临时方案 ```sql set global max_allowed_packet = 50 * 1024 * 1024; ```