<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                <mark>**Agent**</mark>:是一個 JVM 進程,它以事件 Event 的形式將數據從源頭送至目的,<ins>是Flume 數據傳輸的基本單元</ins>。 Agent 主要有 3 個部分組成,Source、Channel、Sink,掌握這3個即可。 <br/> <mark>**Source:**</mark> <ins>Source 是負責接收數據到 Flume Agent 的組件</ins>。用來獲取 Event 并寫入 Channel。 <mark>SourceRunner:</mark>負責啟動 Source,一個 SourceRunner包含一個 Source對象。 <mark>Interceptor:</mark>即為攔截器,是簡單的插件式組件,設置在 Source 和 Channel 之間。 <br/> <mark>**Channel:**</mark> <ins>Channel 是位于 Source 和 Sink 之間的緩沖區。</ins>Channel 是線程安全的,可以同時處理幾個 Source 的寫入操作和幾個 Sink 的讀取操作。 <mark>ChannelSelector:</mark> 作用是為 Source 選擇下游的 Channel。有兩種選擇方式,<ins>復制和多路復用。</ins> <mark>ChannelProcessor:</mark>通過 ChannelSelector 獲取到 Channels 后,如何發送 Event 到Channel。 :-: ![](https://img.kancloud.cn/42/4f/424f9abe9c4314e9a49b34df1efbac04_1149x307.png) ChannelProcessor作用 一個 Source 對象包含一個 ChannelProcessor 對象,一個 ChannelProcessor對象包含多個 Interceptor 對象和一個 ChannelSelector 對象。 :-: ![](https://img.kancloud.cn/97/9c/979c5ce8c50b3ee4de6e53bf37a0bd63_1117x436.png) Source->Channel相關組件 <br/> <mark>**Sink:** </mark>從 Channel 中讀取并移除 Event,將 Event 傳遞到 Flow Pipeline 中的下一個 Agent 或者其他存儲系統。<ins>Sink 不斷地輪詢 Channel 中的事件且批量地移除它們,并將這些事件批量寫入到存儲或索引系統、或者被發送到另一個 Flume Agent。</ins> <br/> <ins>Sink 是完全事務性的</ins>。在從 Channel 批量刪除數據之前,每個 Sink 用Channel 啟動一個事務。批量事件一旦成功寫出到存儲系統或下一個Flume Agent,Sink 就利用 Channel 提交事務。事務一旦被提交,該 Channel從自己的內部緩沖區刪除事件。 <mark>SinkRunner:</mark>負責啟動 Sink。在 Agent 啟動時,會同時啟動 Channel,SourceRunner。 <mark>SinkProcessor:</mark>Flume 提供 FailoverSinkProcessor 和 LoadBalancingSinkProcessor,顧名思義,一個是失效備援,一個是負載均衡,那么 SinkProcessor 不同子類的存在就是為了實現不同的分配操作和策略,而 sink 的 `start()`通常是啟動線程去執行消費操作。還有一個就是默認的DefaultSinkProcessor,即為單個Sink。 <mark>SinkSelector:</mark>LoadBalancingSinkProcessor 包含 SinkSelector,會根據 SinkSelector在 SinkGroup(邏輯上的一組 Sink)中選擇 Sink 并啟動。從源碼中可看出,其為LoadBalancingSinkProcessor 的內部接口。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看