# 数据采集组件
# 背景
从最初的普成机械的数据采集,经历东方特钢的大屏数据的采集、立源机械的数控机床的数据采集、爱可青的冲床数据采集,采集部分的主体框架相同。由于采集模块中内嵌了业务代码,包括数据的解析、处理、封装以及存储,代码的耦合性由此变得很强,后续代码的维护难度可想而知。
因此,希望通过将数据采集部分的通用代码独立出来,一来能单独维护这块代码,减少系统内部的耦合,其次能够通过专门维护来增强采集功能的健壮性。
# 组件要求
首先能够满足快速快速搭建采集组件的要求。通过预置常用的一些采集模板达到快速开发的目的。
其次能够通过扩展支持各种各样不同的场景。主要通过对外暴露一些接口或者抽象类,让调用者能够自定义一些实现类,去实现不同的采集功能。
# 开发环境
开发平台:windows 10
jdk版本:jdk1.7
# 快速使用
- 引入依赖包
<dependency>
<groupId>com.zb.collect</groupId>
<artifactId>collect</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
- 定义采集器
@Component
public class HttpCollerctor extends HttpCollector{
public HttpCollerctor() {
super("Http采集器", new HTTPDataListener(), 8686);
}
}
- 启动采集服务
@Component
public class StartServerAfterBootstarp implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if(event.getApplicationContext().getParent() == null){
CollectService.getInstance().startService();
MessageCenter.getInstance().startService();
}
}
}
启动项目,如果看到控制台打印以下日志,这说明采集组件成功启动。
[com.zbmes.datacollect.collector.HttpCollerctor:60] [INFO] - HTTP Server Startup At:8686
# 内置组件
# http采集器
继承com.zb.data.collect.collector.HttpCollector采集器即可。
构造方法 | 说明 |
---|---|
HttpCollector(String processName, IDataListener listener) |
processName:采集器名称 listener:监听器实例 端口采用默认端口:8181 |
HttpCollector(String processName, IDataListener listener, Integer serverPort) |
processName:采集器名称 listener:监听器实例 serverPort:服务端口 |
- 接口路径地址为项目根路径。即/。
- 接口请求仅支持Http的POST请求。采用UTF-8解码。
- 请求响应为success或fail。采用UTF-8编码。
- 响应返回后,会立即关闭通道连接。但端口监听仍在。
# 内置监听器
com.zb.data.collect.listener.HTTPDataListener监听器可直接使用。
构造方法 | 说明 |
---|---|
dataCollect(String body) | body:数据内容 |
# 内置处理器
实现com.zb.data.message.handler.HttpDataHandler处理器即可。
构造方法 | 说明 |
---|---|
handle(ZBMessage message) | message:数据内容 |
# 进阶操作
# 采集组件控制
辅助类com.zb.data.bootstrap.CollectServiceBootstrapUtils
startAllServices() | 一键启动所有服务 |
stopAllServices() | 一键停止所有服务 |
# 自定义采集器
须继承com.zb.data.collect.collector.AbstractCollector处理器抽象方法。
# 自定义监听器
须实现com.zb.data.collect.IDataListener接口。
# 自定义处理器
须继承com.zb.data.message.handler.HttpDataHandler接口。
# 参数配置
组件采用的默认配置文件为classpath:/conf/data-collect.properties
各参数名、参数含义以及其默认值如下:
参数 | 含义 | 默认值 | 备注 |
---|---|---|---|
data.debug | 调试模式 | false | 无 |
data.message.maxThreadSize | 处理器的最大线程数。适当调大该参数值能提高组件的并行处理能力。 | 20 | 无 |
# 更新日志
# V1.0.1 2020-10-15
引入依赖:
<dependency>
<groupId>com.zb.collect</groupId>
<artifactId>collect</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
支持功能:
- 快速使用
- 内置的采集器
← 介绍