一、 功能
1. 定期采集radwtmp文件,整理成BIDR数据清单,将数据存储到数据库表t_detail_X(1-31)。
2. 使用技术:TCP/IP、JDBC。
二、 模块
客户端: 负责采集数据。
服务端: 负责接收数据。
客 户 端 |
配置模块 |
配置模块 |
服 务 端 |
日志模块 |
日志模块 |
||
采集模块 |
入库模块 |
||
备份模块 |
备份模块 |
||
网络模块 |
网络模块 |
三、 Jar包
1. BIDR类:用来分装采集好的数据。
2. 接口:
Gather接口客户端采集模块
负责采集指定文件中的数据。
eg: #briup1660|037:wKgB1660A|7|1239110900|44.211.221.247
#briup4418|037:wKgB4418A|7|1239138480|251.196.223.191
#用户名|NAS-IP|上线/下线|时间(秒)|IP地址
处理数据:
1. 读取行数据,通过IO流进行读取,
2. 采集数据情况:
第一种情况数据:用户上线了同时也下线了,
第二种情况数据:用户上线了但是还没有下线
3. 判断数据是上线(“7”),还是下线(“8”);
4. 用集合封装数据
第一种情况数据,封装好数据之后就传给服务器,第二种情况数据,进行数据的备份,在下一次的采集中,需要把备份的数据重新读出来使用(因为用户可能在下一次采集中下线了)。
5.第二次读取数据的时候,如何从第一次读完数据的下一行开始读,可以记录一下本次总共读取N个字节,下一次可以直接跳过N个字节,接着读。
6.在读取过程中或者处理过程中,如果出现了异常,需要把数据进行备份。
7.注意重要信息的日志记录。
Client端和Server端通过TCP/IP协议进行通信。
DBStore接口:入库模块
建表语句(oracle):
BEGIN
FOR i IN 1..31 LOOP
EXECUTE IMMEDIATE
'CREATE TABLE t_detail_'||TO_CHAR(i)||