【Flume】負載均衡環境的搭建 load_balance 和failover ---發送端配置


功能:負載均衡

flume的負載均衡即每次按照一定的算法選擇sink輸出到指定地方,如果在文件輸出量很大的情況下,負載均衡還是很有必要的,通過多個通道輸出緩解輸出壓力

flume內置的負載均衡的算法默認是round robin,輪詢算法,按序選擇

下面看一下具體實例:

# Name the components on this agent  
a1.sources = r1  
a1.sinks = k1 k2 k3 
a1.channels = c1  
   
# Describe/configure the source  
a1.sources.r1.type = exec  
a1.sources.r1.channels=c1  
a1.sources.r1.command=tail -F /home/test/data/xiaofan.txt
#define sinkgroups  
a1.sinkgroups=g1  
a1.sinkgroups.g1.sinks=k1 k2 k3 
a1.sinkgroups.g1.processor.type=load_balance  
a1.sinkgroups.g1.processor.backoff=true   # 這個里面是個懲罰機制,會有相關文章進行分析
a1.sinkgroups.g1.processor.selector=round_robin  
  
#define the sink 1  
a1.sinks.k1.type=avro  
a1.sinks.k1.hostname=192.168.14.153  
a1.sinks.k1.port=41414

#define the sink 2  
a1.sinks.k2.type=avro  
a1.sinks.k2.hostname=192.168.14.176  
a1.sinks.k2.port=41414

#define the sink 3
a1.sinks.k3.type=avro  
a1.sinks.k3.hostname=192.168.14.171  
a1.sinks.k3.port=41414

# Use a channel which buffers events in memory  
a1.channels.c1.type = memory  
a1.channels.c1.capacity = 1000  
a1.channels.c1.transactionCapacity = 100  
   
# Bind the source and sink to the channel  
a1.sources.r1.channels = c1  
a1.sinks.k1.channel = c1  
a1.sinks.k2.channel=c1
a1.sinks.k3.channel=c1

 小結

1.當三台主機中的一台進程掛掉后,發送端會報錯誤,但是不影響數據的發送。

2.當掛掉的進程回復后,會繼續被接受數據。這里面有個懲罰機制,如果開啟的失敗的接受端會被等待延遲!

3.當掛掉的進程回復后,發送端會自動添加會發送列表里,報錯消失!

4.這個就是一個簡單的均衡方式,相當於見了一個sink組,在sink組中的數據被輪詢發送!

功能:容錯環境的搭建failover

這個地方上面有個小區別,請根據相關需求處理。

上面的是負載均衡,每台機器都會受到數據處理數據,但是有時候業務需求可能需要一台機器為主要一條業務的數據接收器,另一個台在掛掉后才會被啟用,這時候這個就有用了。

比如:三台接受機:s1:a業務數據,s2:b業務數據,s3:c業務數據

就可以這樣設計了:

s1上配置優先級:s1》s2》s3

s2上配置優先級:s2》s3》s1

s3上配置優先級:s3》s1》s2

只需要和上面一點不同:

#priority越高,優先級越高,會優先使用該sink
a1.sinkgroups=g1  
a1.sinkgroups.g1.sinks=k1 k2  
a1.sinkgroups.g1.processor.type=failover  
a1.sinkgroups.g1.processor.priority.k1=10  
a1.sinkgroups.g1.processor.priority.k2=5  
a1.sinkgroups.g1.processor.maxpenalty=10000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM