91精品新拍在线观看,91精品一区二区,91精品一区二区三区久久久久,91精品在线播放,91精品中综合久久久久婷婷

<pre id="fhfjj"><ruby id="fhfjj"><var id="fhfjj"></var></ruby></pre>
    <p id="fhfjj"><del id="fhfjj"></del></p>

    <p id="fhfjj"><mark id="fhfjj"><progress id="fhfjj"></progress></mark></p>

      當前位置: 首頁 / 技術分享 / 正文
      數據采集工具之Flume 的自動容災和負載均衡

      2023-03-17

         1. sink qianfeng

      數據采集工具之Flume 的自動容災和負載均衡

        說明

        flume的自動容災指的是當某一個channel或者sink擋掉后,由其他的sink來接收數據

        flume的負載均衡指的是多個channel處理的event的數量盡可能的相同。

        自動容災

        上游方案的編寫

        [root@qianfeng01 ~]# vim first-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1 k2

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        a1.sinks.k2.channel = c1

        # source

        a1.sources.r1.type = syslogtcp

        a1.sources.r1.host = qianfeng01

        a1.sources.r1.port = 10086

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = avro

        a1.sinks.k1.hostname = qianfeng02

        a1.sinks.k1.port = 10087

        a1.sinks.k2.type = avro

        a1.sinks.k2.hostname = qianfeng03

        a1.sinks.k2.port = 10088

        #設置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

        下游的qianfeng02上的方案

        [root@qianfeng02 flumeconf]# vim second-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        # source

        a1.sources.r1.type = avro

        a1.sources.r1.bind = qianfeng02

        a1.sources.r1.port = 10087

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = logger

        下游的qianfeng03上的方案

        [root@qianfeng03 flumeconf]# vim third-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        # source

        a1.sources.r1.type = avro

        a1.sources.r1.bind = qianfeng03

        a1.sources.r1.port = 10088

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = logger

        啟動

        先啟動下游的兩個方案

        [root@qianfeng02 flumeconf]# flume-ng agent -c ../conf -f second-processor.properties -n a1 -Dflume.root.logger=INFO,console

        [root@qianfeng03 flumeconf]# flume-ng agent -c ../conf -f third-processor.properties -n a1 -Dflume.root.logger=INFO,console

        在啟動上游的一個方案

        [root@qianfeng03 flumeconf]# flume-ng agent -c ../conf -f first-processor.properties -n a1 -Dflume.root.logger=INFO,console

        測試

        [root@qianfeng02 ~]# echo "helloworld" | nc qianfeng01 10086

        由于k1的優先級是最高的,因此會看到qianfeng02上有數據

        模擬自動容災,使用ctrl+c 殺死qianfeng02上的方案,就會看到qianfeng03上有數據了。

        負載均衡

        負載均衡Sink 選擇器提供了在多個sink上進行負載均衡流量的功能。 它維護一個活動sink列表的索引來實現負載的分配。 默認支持了輪詢(round_robin)和隨機(random)兩種選擇機制分配負載。 默認是輪詢,可以通過配置來更改。

        注意: 如果backoff設置為true則啟用了退避機制,失敗的sink會被放入黑名單,達到一定的超時時間后會自動從黑名單移除。 如從黑名單出來后sink仍然失敗,則再次進入黑名單而且超時時間會翻倍,以避免在無響應的sink上浪費過長時間。 如果沒有啟用退避機制,在禁用此功能的情況下,發生sink傳輸失敗后,會將本次負載傳給下一個sink繼續嘗試,因此這種情況下是不均衡的。

        上游方案的編寫

        [root@qianfeng01 ~]# vim first-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1 k2

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        a1.sinks.k2.channel = c1

        # source

        a1.sources.r1.type = syslogtcp

        a1.sources.r1.host = qianfeng01

        a1.sources.r1.port = 10086

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = avro

        a1.sinks.k1.hostname = qianfeng02

        a1.sinks.k1.port = 10087

        a1.sinks.k2.type = avro

        a1.sinks.k2.hostname = qianfeng03

        a1.sinks.k2.port = 10088

        #設置sink組

        a1.sinkgroups = g1

        a1.sinkgroups.g1.sinks = k1 k2

        a1.sinkgroups.g1.processor.type = load_balance

        a1.sinkgroups.g1.processor.backoff = true

        a1.sinkgroups.g1.processor.selector = random

        下游的qianfeng02上的方案

        [root@qianfeng02 flumeconf]# vim second-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        # source

        a1.sources.r1.type = avro

        a1.sources.r1.bind = qianfeng02

        a1.sources.r1.port = 10087

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = logger

        下游的qianfeng03上的方案

        [root@qianfeng03 flumeconf]# vim third-processor.conf

        #list names

        a1.sources = r1

        a1.channels = c1

        a1.sinks = k1

        a1.sources.r1.channels = c1

        a1.sinks.k1.channel = c1

        # source

        a1.sources.r1.type = avro

        a1.sources.r1.bind = qianfeng03

        a1.sources.r1.port = 10088

        # channel

        a1.channels.c1.type = memory

        # sink

        a1.sinks.k1.type = logger

        啟動

        先啟動下游的兩個方案

        [root@qianfeng02 flumeconf]# flume-ng agent -c ../conf -f second-processor.properties -n a1 -Dflume.root.logger=INFO,console

        [root@qianfeng03 flumeconf]# flume-ng agent -c ../conf -f third-processor.properties -n a1 -Dflume.root.logger=INFO,console

        在啟動上游的一個方案

        [root@qianfeng03 flumeconf]# flume-ng agent -c ../conf -f first-processor.properties -n a1 -Dflume.root.logger=INFO,console

        測試

        [root@qianfeng01 ~]# echo "helloworld" | nc qianfeng01 10086

        [root@qianfeng01 ~]# echo "helloworld" | nc qianfeng01 10086

        [root@qianfeng01 ~]# echo "helloworld" | nc qianfeng01 10086

        多發幾條查看效果.....

        發送數據的時候不要特別快,因為一個channel可以容納多條Event,發送特別快就查看不到效果,所以慢慢發送,最好的操作方式就發送一條數據后等這條數據已經到某一個sink了,在發送下一條即可。

      好程序員公眾號

      • · 剖析行業發展趨勢
      • · 匯聚企業項目源碼

      好程序員開班動態

      More+
      • HTML5大前端 <高端班>

        開班時間:2021-04-12(深圳)

        開班盛況

        開班時間:2021-05-17(北京)

        開班盛況
      • 大數據+人工智能 <高端班>

        開班時間:2021-03-22(杭州)

        開班盛況

        開班時間:2021-04-26(北京)

        開班盛況
      • JavaEE分布式開發 <高端班>

        開班時間:2021-05-10(北京)

        開班盛況

        開班時間:2021-02-22(北京)

        開班盛況
      • Python人工智能+數據分析 <高端班>

        開班時間:2021-07-12(北京)

        預約報名

        開班時間:2020-09-21(上海)

        開班盛況
      • 云計算開發 <高端班>

        開班時間:2021-07-12(北京)

        預約報名

        開班時間:2019-07-22(北京)

        開班盛況
      IT培訓IT培訓
      在線咨詢
      IT培訓IT培訓
      試聽
      IT培訓IT培訓
      入學教程
      IT培訓IT培訓
      立即報名
      IT培訓

      Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

      91精品新拍在线观看,91精品一区二区,91精品一区二区三区久久久久,91精品在线播放,91精品中综合久久久久婷婷