1、Flume的入口---Application.java
Main函数中的关键代码如下:
EventBus eventBus = new EventBus(agentName + "-event-bus");
PollingPropertiesFileConfigurationProvider configurationProvider = new PollingPropertiesFileConfigurationProvider(agentName, configurationFile, eventBus, 30);
components.add(configurationProvider);
application = new Application(components);
logger.info("add by 徐国坤 EventBus");
eventBus.register(application);
。。。。。。。。。
application.start();
2、PollingPropertiesFileConfigurationProvider configurationProvider = new PollingPropertiesFileConfigurationProvider(agentName, configurationFile, eventBus, 30)讲解
关键代码:
PollingPropertiesFileConfigurationProvider里面有个关键的方法:start
public void start() {
Preconditions.checkState(file != null, parameter file must not be null");
executorService = Executors.newSingleThreadScheduledExecutor(
new ThreadFactoryBuilder().setNameFormat("conf-file-poller-%d")
.build());
FileWatcherRunnable fileWatcherRunnable =
new FileWatcherRunnable(file, counterGroup);
executorService.scheduleWithFixedDelay(fileWatcherRunnable, 0, interval,TimeUnit.SECONDS);
lifecycleState = LifecycleState.START;
LOGGER.debug("Configuration provider started");
}
该段代码的主要作用是定期监测配置文件是不是有变化,如果发生变化能实时的监测到。fileWatcherRu
Flume-1.6.0部分源码解析
最新推荐文章于 2019-10-12 16:26:37 发布