[发明专利]一种日志分布式收集及存储方法无效
申请号: | 201210524643.7 | 申请日: | 2012-12-07 |
公开(公告)号: | CN103036961A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 柯宗贵;柯宗庆;杨育斌;张道磊 | 申请(专利权)人: | 蓝盾信息安全技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510665 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 日志 分布式 收集 存储 方法 | ||
1.一种日志分布式收集及存储方法,其特征在于,该方法具体为:各客户端节点收集的日志缓存在一个数组容器中,Protobuf序列化后通过回调函数发送给远程日志收集服务器,一次大量发送比通过管道多次少量发送要高效,采用tcp/ip协议进行数据交互,发送端对数据序列化,接收端对数据反序列化;为了维护长连接,客户端定期发送心跳包判断日志服务端是否在线,若在线则日志服务端对心跳包响应;调度器1对连接来的fd统一调度,并将处理好的数据放在数据缓存池中,调度器2从数据缓存池中取一定数量数据后,发送给远程终端,计算机远程终端收到数据后,将数据写入数据库。
2.根据权利要求1所述的方法,其特征在于,发送回调函数将被调用的情形为:当缓存数量达到数据高水位级别时;当缓存时间达到时间高水位级别时;当缓存数量达到数据临界水位时;当缓存时间达到时间临界水位时;其中,数据高水位是指发送数据操作,使得输出缓冲区的数据量在此级别或者更高时;数据临界水位是指发送数据操作,使得输出缓冲区的数据量在此级别,并且时间间隔达到一定时;时间高水位是指发送数据操作,时间间隔在此级别或者更高时;时间临界水位是指发送数据操作,时间间隔在此级别,并且输出缓冲区的数据量达到一定时。
3.根据权利要求1所述的方法,其特征在于,调度器1对客户端发送来的数据进行处理的流程为:主线程负责监听客户端的建立连接请求,然后将这次连接设置为非阻塞;将返回的fd轮询放入不同的处理数据线程队列中,以达到负载均衡;完成此操作后,通过管道发送一个字节通知process_data_thread线程,process_data_thread线程负责处理已经建立好连接的读写事件,先将数据反序列化,并将处理好的数据放在数据缓存池中,交给调度器2来统一调度。
4.根据权利要求1所述的方法,其特征在于,调度器2负责将调度器1处理好的数据发送给远程终端系统,具体为发送线程Send_data_thread从数据缓存池中取一定数量数据后,发送给远程终端,计算机远程终端收到数据后,将数据写入数据库。
5.根据权利要求4所述的方法,其特征在于,每一个发送线程Send_data_thread实际通信的远程终端负载数为n_load。
6.根据权利要求1或4所述的方法,其特征在于,每一台计算机远程终端的fd和ip地址等信息存储在peer_add的结构体中,远程终端与发送线程Send_data_thread通信活动连接的peer_add放在active堆中,心跳包检测超时的远程终端peer_add放在inactive链表中,由线程Work_thread来维护。
7.根据权利要求6所述的方法,其特征在于,active堆是一个最小堆,每一个节点对应着一个发送线程Send_data_thread,节点存储有相应的peer_add结构、负载数n_load,堆按照负载数n_load排序,在最小堆中父节点n_load小于儿子节点的n_load。
8.根据权利要求6所述的方法,其特征在于,inactive链表里存储的是心跳超时的远程终端ip,Work_thread进程定时ping这些超时的远程终端,如果ping得通,还得重新发起新的连接,并将建立起连接的peer_add结构,交给avtive中n_load小的节点,动态调节每个send_data_thread的n_load数,并更新堆。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蓝盾信息安全技术股份有限公司,未经蓝盾信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210524643.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种液压机械双保护制动器
- 下一篇:一种车用电控气动离合器控制装置