如何配置 Apache Flume
多听 HTTP sources
在有多个Flume代理的集群中?
我的flume代理配置如下:
agent1.sources.httpSource_1.type = http
...
agent1.sources.httpSource_1.port = 8081
agent1.sources.httpSource_2.type = http
...
agent1.sources.httpSource_2.port = 8082
agent1.sources.httpSource_3.type = http
...
agent1.sources.httpSource_3.port = 8083
假设集群中有5台服务器。我应该把rest或post-http消息发送到哪个地址才能到达我的5台服务器?
例如,如果我将向 <server_dns_1>:8081
只有这样 agent1
如果我理解正确的话,我会处理的。如何使用所有群集服务器?我应该将http请求发送到哪个地址?
1条答案
按热度按时间jgwigjjp1#
坎特罗伊德,你配置flume的方式只有一个代理(
agent1
)将运行。此代理将在内部运行5个侦听线程。也就是说,一个httppost不可能将消息发送到所有5个侦听线程(或者5个代理,如果您最终将惟一代理拆分为5个)。除非你使用一些负载平衡软件或者你在网络层面使用一些“广播”魔法(我不是这方面的Maven)。
不过,如果拥有5个侦听端口的原因是您希望执行5种不同的数据处理,那么您可以创建一个在单个http端口中侦听的代理,然后创建5个不同的通道,其中5个不同的接收器将侦听。此体系结构的关键点是默认的通道选择器是复制的,即同一事件的副本将由唯一的侦听源放入5个通道。