进击的大数据(六)数据采集模块的设计

先来搞数据采集模块吧, 简单做一下需求分析,大概暂时就这几个需求吧,很简单。

1. 需求分析 

1.1 syslog协议采集

        1)采用udp协议对宿主机指定端口进行监听,实时获取数据后将数据放入redis缓存。

        2)可通过配置文件对UDP协议绑定的IP、端口进行设置。

        3)端口默认 514 syslog标准端口,IP默认 0.0.0.0 即宿主机所有IP地址。

1.2 服务中心消息通信

       1)提供与服务中心交互接口,便于服务中心对该模块进行状态数据采集,这是考虑以后如果采用集群部署形式时,可以通过

            服务中心模块进行系统状态追踪。

       2)接口采用应答模式,由服务中心发送状态获取请求,采集模块回应相应数据。

       3)采集端可通过配置文件配置所属服务中心IP地址。

       4)服务中心交互内容包括一下内容:

            获取节点系统信息:计算机名、IP地址

            检查节点数据采集模块运行状态

1.3 资产自动发现

      1)支持资产自动发现,通过网络自动发现存在数据交互关系的客户端资产。

2.概要设计

       资产数据由服务中心从mysql数据库缓存到redis中,数据采集模块从redis中获取资产数据,redis仅做内存级缓存,不做数  据持久化,这样可以避免如果mysql中资产数量大导致的查询时长影响采集端的入库效率问题。

2.1 syslog协议采集流程图

2.2 接口设计

服务中心通信接口

请求地址

interactive

请求形式

POST

返回值类型

return_resultModel

请求参数

序号

参数名

类型

必填

详细说明

1

command

string

服务中心发送的指令

返回参数(json)

序号

参数名

类型

详细说明

1

result

int

返回是否成功,1表示成功,0表示失败。

2

data_message

List

json数据根据指令不同有不同的内容

 3.详细设计

3.1 syslog协议采集

        1)UDP采用非阻塞式监听,确保可以第一之间返回监听状态,减少数据丢失的概率,非阻塞式监听:Selector

        2)采用固定线程池进行多线程数据处理,集中java线程池的对比,固定线程池较为适合。

        3)固定线程池暂时采用n*2+1的计算方式确定线程数量,n代表cpu的核心数,这是一个基础算法。

3.2 接口命令列表

        1)get_sysinfo:获取系统基本信息

            返回数据格式:{"runstatus":"1","nodename":"node1"}

            runstatus:节点运行状态,接口正常调用则返回1

            nodename:节点计算机名称

           状态检测及系统信息获取暂时使用一个命令

3.3 redis表设计

       

表名字段名类型说明 
spartacus_assets_discoversourceipstring数据产生者的IP地址资产发现表
nodeipstring接收数据节点的IP地址
createtimestring发现资产的时间
spartacus_{nodename}_data hostipstring资产ip数据采集表
 receivetimelong接收时间 时间戳
receivesourcestring接收源  syslog
datacontentstring数据内容
idspartacus_assetsint资产id
assetsnamestring资产名称
securitydomainstring资产所处的安全域
businessdomainstring资产所处的业务域
physicalpositionstring资产所处的物理位置
subnodenamestring资产所属节点的名称
subnodeipstring资产所属节点的ip

3.4 mysql表设计

mysql中spartacus_nodes表设计时预设了部分字段,这是为将来部分功能做的预留,这个阶段可以不用在意。

 

第一章 需求分析 1 1. 本课程设计题目 1 2. 本课程设计要求及任务 1 3. 课程设计思想 1 4. 软硬件开发环境 2 5. 开发工具 2 第二章 概要设计 3 1. 分析 3 2. 设计 4 第三章 详细设计 5 1. 原理图及PCB图 5 2. 程序流程图 7 3. 软件设计程序 8 4. 设计计算结果 12 第四章 调试与操作说明 12 第五章 课程设计总结与体会 12 第章 致谢 14 第七章 参考文献 14 第一章 需求分析 1. 本课程设计题目 微机数据采集系统设计 2. 本课程设计要求及任务 要求: 单通道采集数据并显示; 多通道循环采集数据并显示。 任务: 进行微机数据采集系统电路硬件设计,画出电路原理图PCB图或元器件布线图;安装或焊接元器件;进行数据采集系统控制程序设计(采用ASM或CPP语言);系统联调,提交一个满足上述二种要求之一的微机数据采集系统设计。 3. 课程设计思想 首先,根据实验要求,设计A/D数据采集电路,然后,按照电路原理,选用一些元器件,在面包板上分别搭建电路模块。由于实验中要用到MFID多功能微机实验平台板上的8255A作接口控制信号,所以要用两头带插针的软导线,通过26芯电缆的插孔将8255A的输出信号接入面包板,这样整个的组成了A/D数据采集系统的硬件。 然后,编写A/D数据采集系统的控制程序,并进行调试。 最后,加入软件控制程序,对接口进行驱动,组成了A/D数据采集系统。 A/D数据采集模块、平台板、微机组成的数据采集系统框图 如图3.1所示。 4. 软硬件开发环境 MF软件采用系统集成技术,把实验程序的开发工具,故障诊断程序和外设模块演示程序集成在一个环境中,构成一个用户程序集成开发环境IDE(Integrated Development Environment)。用户程序的编辑、编译、连接、运行和修改的全过程都在一个集成的环境中完成,大大提高了编程的效率。这个环境目前已有4个版本,每个版本提供了内容丰富的汇编语言和C/C++语言开发软件包,并以全屏幕窗口环境的形式供用户使用。 5. 开发工具 实验程序的开发工具包括编辑器、编译系统、连接程序和调试程序。 1:编辑器采用全屏幕多窗口编辑器,复制,粘贴,裁减十分方便。: 2:编译系统 MF软件包括了C/C++语言和汇编语言两个编译系统,用户可根据自己所熟悉的语言,任选一个来编写程序,并在集成环境中进行程序的编译(汇编)、连接、运行与调试。 3:连接程序 采用TLINK。 4:调试程序 采用TDEBUGGER全屏幕调试程序,直观全面,使用方便。 以上应用程序(实验程序)开发工具,集成在集成开发环境(IDE)中,用户只需在集成开发环境全屏幕窗口中,点击主菜单的相应菜单项,即可随时启用。 第二章 概要设计 1. 分析 要实现上述设计要求,至少需要考虑:被控对象ADC0809的特性、接口电路结构形式。 ADC0809的外部特性: ADC的外部引脚如图4.7,从图中 可以看出 ,ADC0809有八个模拟 量输入端(IN0-IN7),相应设 置3根模拟量通道地址线(ADDA -ADDC),用以编码来选择8个 模拟量输入通道。并且还设置1根地址锁存允许信号ALE,高电平有效。当ALE变高,锁存由ADDa-ADDc编码所选中的通道号,将该通道的模拟量接入A/D转换器。 ADC0809的分辨率为8位,有8根数字量输出线(D0-D7),带有三态输出锁存器。并设置了1根输出允许信号OE,高电平有效。当读数据时,要使OE置高,打开三态输出锁存器,把转换的数字量送到数据线上。 ADC0809的转换启动信号是START,高电平有效。转换结束信号EOC,转换过程中为低电平,转换完毕变为高电平,可利用EOC的上升沿申请中断,或作查询之用。 2. 设计 1.A/D数据采集模块电路 本外设模块采用8855A作为接口电路,其中,PA0-PA7接数据线,其低三位与通道地址线ADDA-ADDC相连,即将通道号写入A口。另外,转换后的数据从A口读入CPU。PC0连接START和ALE信号,高电平有效,表示启动转换。PC1连接输出允许信号OE。当查询方式时,PC4连接EOC信号,转换过程中,PC4为0,当转换完毕时,PC4为1。 2.设计方法及其原理: 通过ADC0809数模转换器将由电位器转动所产生的模拟信号转换为数字信号,然后通过8255A并行接口送入内存并显示在窗口中。 第三章 详细设计 1. 原理图及PCB图 原理图如下: PCB图如下: 2. 程序流程图 3. 软件设计程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值