1. channel
的优化
a.在Flume中,channel也是一个性能的瓶颈。如果从Agent发送过来要处理的event的数量不断增加,那么将会给channel带来很大的处理压力,从而影响整个系统性能。
a.在Flume中,channel也是一个性能的瓶颈。如果从Agent发送过来要处理的event的数量不断增加,那么将会给channel带来很大的处理压力,从而影响整个系统性能。
在这个问题上,我们可以配置多个channel进行分流。然后我们可以通过某种规则,例如手动设置,将不同的Agent产生的event发送给相应的channel,这样就将压力分摊给了多个Channel节点。
b.Channel有多种方式:有MemoryChannel,JDBC Channel,MemoryRecoverChannel,FileChannel。MemoryChannel可以实现高速的吞吐,但是无法保证数据的完整性。MemoryRecoverChannel在官方文档的建议上已经建义使用FileChannel来替换。FileChannel保证数据的完整性与一致性。在具体配置不现的FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录设成不同的磁盘,以便提高效率。
c.改变数据承载量
agent.channels.memoryChanne3.capacity = 1000000
2.整体
a.增加内存
vi bin/flume-ng
JAVA_OPTS="-Xmx512m"
b.日志采集端数目和聚合端的数目关系。
经试验,一个flume聚合端 + 50个采集端 相对最为稳定。通常的做法是,各个采集端配置配置一个统一的ip和端口,这个ip和端口一般部署一个负载均衡服务器(LVS或者HAProxy),负载均衡服务器再将请求转发到各个聚合端上。