Flume NG源码分析
文章平均质量分 87
Flume NG是互联网公司广泛使用的一个分布式日志收集框架,是Apache的顶级项目。目前分析Flume NG源码的文章很少。这个专栏会深入分析Flume NG的源码,讲解Flume NG的使用
iter_zc
关注互联网架构方向
展开
-
Flume NG源码分析(七)ChannelSelector
前几篇介绍了Flume NG Source组件的基本情况,接下来看看Channel相关的组件,Channel相关组件有:1. Channel2. ChannelSelector3. Interceptor / InterceptorChain4. ChannelProcessor5. Transaction这篇说说ChannelSelector之一的Replicat原创 2015-06-18 17:07:06 · 2790 阅读 · 0 评论 -
Flume NG源码分析(六)应用程序使用的RpcClient设计
上一篇Flume NG源码分析(五)使用ThriftSource通过RPC方式收集日志 介绍了ThriftSource利用Thrfit服务ThriftSourceProtocol来收集日志。这篇说说flume-ng-sdk中提供给应用层序使用的ThriftRPCClient类,它封装了ThriftSourceProtocol服务的客户端并提供了一些优化。先看看ThriftSourceP原创 2015-06-17 17:39:25 · 4043 阅读 · 0 评论 -
Flume NG源码分析(五)使用ThriftSource通过RPC方式收集日志
上一篇说了利用ExecSource从本地日志文件异步的收集日志,这篇说说采用RPC方式同步收集日志的方式。笔者对Thrift比较熟悉,所以用ThriftSource来介绍RPC的日志收集方式。整体的结构图如下:1. ThriftSource包含了一个Thrift Server,以及一个Thrift Service服务的实现。这里的Thrift Service是由ThriftSourcePr原创 2015-06-17 16:30:30 · 3118 阅读 · 0 评论 -
Flume NG源码分析(四)使用ExecSource从本地日志文件中收集日志
常见的日志收集方式有两种,一种是经由本地日志文件做媒介,异步地发送到远程日志仓库,一种是基于RPC方式的同步日志收集,直接发送到远程日志仓库。这篇讲讲Flume NG如何从本地日志文件中收集日志。ExecSource是用来执行本地shell命令,并把本地日志文件中的数据封装成Event事件流在Flume NG中流动。它的典型配置如下,指定source类型是exec,指定Source下游原创 2015-06-16 16:08:00 · 5299 阅读 · 0 评论 -
Flume NG源码分析(三)使用Event接口表示数据流
Flume NG有4个主要的组件:Event表示在Flume各个Agent之间传递的数据流Source表示从外部源接收Event数据流,然后传递给ChannelChannel表示对从Source传递的Event数据流的临时存储Sink表示从Channel中接收存储的Event数据流,并传递给下游的Source或者终点仓库这篇看一下Event接口表示的数据流。Source,原创 2015-06-16 15:53:21 · 2537 阅读 · 0 评论 -
Flume NG源码分析(二)支持运行时动态修改配置的配置模块
在上一篇中讲了Flume NG配置模块基本的接口的类,PropertiesConfigurationProvider提供了基于properties配置文件的静态配置的能力,这篇细说一下PollingPropertiesFileConfigurationProvider提供的运行时动态修改配置并生效的能力。要实现动态修改配置文件并生效,主要有两个待实现的功能1. 观察配置文件是否修改原创 2015-06-08 17:08:34 · 4289 阅读 · 0 评论 -
Flume NG源码分析(一)基于静态properties文件的配置模块
日志收集是互联网公司的一个重要服务,Flume NG是Apache的顶级项目,是分布式日志收集服务的一个开源实现,具有良好的扩展性,与其他很多开源组件可以无缝集成。搜了一圈发现介绍Flume NG的文章有不少,但是深入分析Flume NG源代码的却没有。最近准备写一个系列分析一下Flume NG的源码。这篇先从基础的配置模块说起。Flume NG支持两种配置模式,一种是基于proper原创 2015-06-03 21:02:12 · 4530 阅读 · 0 评论