【技术实现步骤摘要】
一种数据分流方法及系统
本专利技术涉及数据采集
,更具体地说,涉及一种数据分流方法及系统。
技术介绍
flume作为cloudera开发的实时日志收集系统,受到了业界的认可与广泛应用。目前很多公司数据平台的采集技术选型均由flume担当,flume也以其优越的性能,简单的配置和清晰的流程受到广泛关注。在数据采集工作中syslog数据是一类普遍见到的数据,syslog数据的采集工作也格外重要,如何简化和优化syslog数据的采集显得尤为突出。针对syslog数据的采集场景,目前通常为在服务器上针对每一种syslog数据开放一个udp端口,然后再针对每个udp端口配置一份配置文件,对应启动一个flume实现syslog数据的采集,但是实际中服务器一般无法开发多个udp端口,配置文件增多意味着维护成本增加,多个flume运行会占用较多内存(一般一个flume会占用2G内存);也即这种方案增加了配置工作和维护成本,同时会耗费大量的内存。
技术实现思路
本专利技术的目的是提供一种数据分流方法及系统,减少了配置工作和维护成本,同时能够节省内存。为了实现上述目的,本专利技术提供如下技术方案:一种数据分流方法,包括:每个channel均从source中获取当前需要传输的全部event,并从每个所述event中提取该event的数据类型;其中,一个所述source同时与多个channel连接,多个channel与多个sink一一对应连接;每个所述channel均将每个所 ...
【技术保护点】
1.一种数据分流方法,其特征在于,包括:/n每个channel均从source中获取当前需要传输的全部event,并从每个所述event中提取该event的数据类型;其中,一个所述source同时与多个channel连接,多个channel与多个sink一一对应连接;/n每个所述channel均将每个所述event的数据类型分别与自身配置的数据类型进行比对,并确定与自身配置的数据类型相同的event为目标event;/n每个所述channel均将与自身对应的目标event传输至自身所连接的sink。/n
【技术特征摘要】
1.一种数据分流方法,其特征在于,包括:
每个channel均从source中获取当前需要传输的全部event,并从每个所述event中提取该event的数据类型;其中,一个所述source同时与多个channel连接,多个channel与多个sink一一对应连接;
每个所述channel均将每个所述event的数据类型分别与自身配置的数据类型进行比对,并确定与自身配置的数据类型相同的event为目标event;
每个所述channel均将与自身对应的目标event传输至自身所连接的sink。
2.根据权利要求1所述的方法,其特征在于,每个所述channel均将与自身对应的目标event传输至自身所连接的sink,包括:
每个所述channel均将自身对应的目标event放入至自身包含的putlist中,将自身包含的putlist中的目标event放入至自身包含的缓存队列中,将自身包含的缓存队列中的目标event放入至takelist中;
每个所述sink均由与自身连接的channel包含的takelist中取出目标event。
3.根据权利要求2所述的方法,其特征在于,每个所述channel将自身包含的putlist中的目标event放入至自身包含的缓存队列中之前,还包括:
每个所述channel均判断自身包含的缓存队列中是否存在可放入自身对应的目标event的剩余空间,如果是,则执行将自身包含的putlist中的目标event放入至自身包含的缓存队列中的步骤,如果否,则等待指定时间段后返回执行判断自身包含的缓存队列中是否存在可放入自身对应的目标event的剩余空间的步骤,直至返回执行判断自身包含的缓存队列中是否存在可放入自身对应的目标event的剩余空间的步骤的次数达到预设次数为止。
4.根据权利要求3所述的方法,其特征在于,每个所述channel均判断自身包含的缓存队列中是否存在可放入自身对应的目标event的剩余空间之前,还包括:
每个所述channel均比对自身包含的所述putlist及所述takelist分别包含的目标event的数量,如果自身包含的所述takelist中目标event的数量小于自身包含的所述putlist中目标event的数量,则执行判断自身包含的缓存队列中是否存在可放入自身对应的目标event的剩余空间的步骤,否则,执行将自身包含的putlist中的目标event放入至自身包含的缓存队列中的...
【专利技术属性】
技术研发人员:范颜婷,范渊,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。