flume總結
flume如何保證數據可靠性:JDBC FILE MEMORY ???
JDBC
FILE: 傳輸慢
MEMORY:傳輸快,但是容易丟數據。解決:寫個腳本監控如果flume掛了,瞬間啟動
改造flume exec源 ,增加守護線程來監控目錄-----防止丟失數據 | redis緩存中,存儲已經收集過的key---防止重復收集
flume LVS 負載均衡
Linux Virtual Server
LVS集群采用IP負載均衡技術和基於內容請求分發技術
og
升級成ng
kafka總結
kafka數據丟失問題解決
1、kafka數據丟失問題:
acks = 1 只保證leader成功,如果剛好leader掛了,數據丟失
acks=0 使用異步模式,該模式下kafka無法保證消息,可能會丟失
2、broker kafka集群的緩存代理broker保證數據不丟失: Broker:緩存代理,Kafka集群中的一台或多台服務器統稱為broker
acks = all :所有副本都寫入成功並確認
retries = 設置合理值 重新拉數據
min.insync.replicas = 2 消息至少要被寫入到2 個副本才算成功
unclean.leader.election.enable = false 關閉ubclean leader 選舉,不允許非ISR中的副本被選舉為leader,一面是戶據丟失
3、consumer保證數據不丟失:
出現數據丟失因為在:在消息處理完成前就提交了offset
解決:關閉自動提交偏移量offset:enable.auto.commit = false
處理完消息手動提交偏移量
kafka工作流程
kafka保證消息順序:
1、全局順序:全局使用一個生產者,一個分區,一個消費者
2、局部順序:每個分區是有序的,根據業務場景制定不同的key進入不同的分區