寻找关于如何设置一个简单的多线程Flume源的建议。我在本地开发环境中使用了一个spooldir源来测试我的拦截器,但是从下面的链接来看,spooldir源总是单线程的:并行读Flume我们有一个拦截器,它在生产中可能有缺陷,因为它使用的是非线程安全的simpledateformatter,我正在尝试在我的simpledev环境中复制。
mfpqipee1#
通过将开发环境从spooldir源切换到syslogtcp源,我最终能够重现我们在生产中看到的多线程错误行为。这个bug并不是我们所期望的,它与simpledateformatter无关,而是它如何在事件头中插入额外的信息。我模拟了一个syslog服务器,使用nc(netcat)将数据发送到syslog端口。我通过记录线程名称和id来验证拦截器是否被多个线程调用。因此,对于任何感兴趣的人来说,最好使用syslogtcp之类的多线程源代码而不是spooldir源代码来测试拦截器。
1条答案
按热度按时间mfpqipee1#
通过将开发环境从spooldir源切换到syslogtcp源,我最终能够重现我们在生产中看到的多线程错误行为。这个bug并不是我们所期望的,它与simpledateformatter无关,而是它如何在事件头中插入额外的信息。
我模拟了一个syslog服务器,使用nc(netcat)将数据发送到syslog端口。我通过记录线程名称和id来验证拦截器是否被多个线程调用。
因此,对于任何感兴趣的人来说,最好使用syslogtcp之类的多线程源代码而不是spooldir源代码来测试拦截器。