scribe是大名鼎鼎的facebook开源软件,网上很多人喜欢说它是日志采集软件,其实更加准确的说法应该是数据传输软件。scribe本身并没有日志采集的功能,它只能接收别的软件传输过来的数据,并将该数据传输到其他地方。
既然是传输软件,就要使用一个网络传输协议。scribe使用的thrift协议(后续会有该系列分享)。网络传输协议有了,还需要数据传入软件、数据接收软件和scribe一起搭配才能完成最终的日志或其他数据传输系统。
日志采集方:可以根据自己的需要使用c++、java或python等任何一种语言实现日志采集功能,并按照thrift协议,调用scribe提供的rpc接口,便可将采集到的数据传输到scribe中。
日志接受方:scribe可以将接收到的数据发送到另一个实现了scribe数据接rpc接口的其他系统、hdfs或本地磁盘。
scribe整体可以分为两个大模块:数据接收模块和数据发送模块。
数据接收模块:此模块是thrift线程进行处理,线程数是可以配置的,因此scribe同一时刻可以接收多个采集器。thrift线程将接收到的数据放到一个缓存中,就结束了它的使命,进而等待下一次的数据接收。
数据发送模块:主要将接收到的数据从缓存中取出并发送到数据接收方。以多线程的方式进行数据发送。线程数由配置文件决定。
scribe内部工作原理如下图所示:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/104695.html