900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 进击的大数据(六)数据采集模块的设计

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

时间:2021-07-10 10:38:32

相关推荐

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

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

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 接口设计

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表设计

3.4 mysql表设计

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。