如何配置Apache Flume
在具有多个水槽代理的群集中收听多个HTTP sources
?
我的水槽代理配置如下:
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台服务器。我应该将哪个地址发送到我的所有5台服务器上的REST或POST http消息?
例如,如果我将HTTP POST消息发送到<server_dns_1>:8081
,那么只有agent1
才能处理它,如果我理解正确的话。
如何使用我的所有群集服务器以及应该将http请求发送到哪个地址?
答案 0 :(得分:0)
Cantroid,您配置Flume的方式只会运行一个代理(agent1
)。该代理将在内部运行5个侦听线程。
话虽如此,单个http POST无法向所有5个侦听线程(或5个代理,如果您最终将您的唯一代理分成5个)发送消息。除非您使用某些负载平衡软件或使用某些&#34;广播&#34;网络层面的魔力(我不是专家)。
然而,如果有5个侦听端口的原因是您想要执行5种不同的数据处理,那么您可以在单个HTTP端口中创建单个代理侦听,然后创建5个不同的通道,其中5个不同的接收器将侦听。这种架构的关键点是默认的通道选择器是复制的,即同一事件的副本将由独特的监听源放入5个通道。