flume rpc客户端是异步的吗?

holgip5t  于 2021-06-03  发布在  Flume
关注(0)|答案(2)|浏览(464)

我的要求是从一个高性能系统收集数据(仅仅是字符串)到hadoop。我正在使用akka收集数据并发送到flume。然而,为了实验的目的,我想看看是否Flume单独将做的工作。我已经准备好flumerpcclient,它将与flume收集器集群通信。
我的客户端扩展了org.apache.flume.api.loadbalancingrpcclient。
问题是,flumerpcclient是否是异步的。如果不是,发送方将受到性能影响。
谢谢您。

zte4gxcn

zte4gxcn1#

为了保证事件传递,flume代理需要将来自flumerpclient的事件存储到通道(文件或内存通道,这取决于接收代理的配置)。所以,它应该阻塞,直到事件被接受并存储在通道中。您可能希望将事件分组成批以提高性能,或者简单地将它们转储到旋转的文件中,并由单独的flume代理进程读取。

q3aa0525

q3aa05252#

您可以考虑使用log4j2中的异步附加器。它使用disruptor将事件通过管道传输到您选择的任何附加器。
您将失去持久存储所有事件的保证(因为如果进程失败,任何碰巧在disruptor中的事件都将丢失)。但是,如果您想要获得最大的性能,那么无论如何都必须进行这种权衡。

相关问题