<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 功能強大 支持多語言、二開方便! 廣告
                1. **`enable.auto.commit`** 指定了消費者是否自動提交偏移量,默認值是 true,為了盡量避免重復數據和數據丟失,可以把它設置為 false,有自己控制合適提交偏移量,如果設置為true,可以通過設置 auto.commit.interval.ms 屬性來控制提交的頻率。 2. **`auto.offset.reset`** 該參數指定了消費者在讀取一個沒有 Offset 或者 Offset 無效(消費者長時間失效,當前的 Offset 已經過時并且被刪除了)的分區的情況下,應該作何處理,默認值是 latest,也就是從最新記錄讀取數據(消費者啟動之后生成的記錄),另一個值是 earliest,意思是在偏移量無效的情況下,消費者從起始位置開始讀取數據。 3. **`session.timeout.ms`** 該參數指定了當消費者被認為已經掛掉之前可以與服務器斷開連接的時間。默認是 3s,消費者在 3s 之內沒有再次向服務器發送心跳,那么將會被認為已經死亡。此時,協調器將會觸發再均衡,把它的分區分配給其他的消費者,該參數與 heartbeat.interval.ms 緊密相關,該參數定義了消費者發送心跳的時間間隔,也就是心跳頻率,一般要同時修改這兩個參數,heartbeat.interval.ms 參數值必須要小 于 session.timeout.ms ,一般是 session.timeout.ms 的三分之一,比如,session.timeout.ms 設置成 3min,那么 heartbeat.interval.ms 一般設置成 1min,這樣,可以更快的檢測以及恢復崩潰的節點,不過長時間的輪詢或垃圾收集可能導致非預期的再均衡(有一種情況就是網絡延遲,本身消費者是沒有掛掉的,但是網絡延遲造成了心跳超時,這樣本不該發生再均衡,但是因為網絡原因造成了非預期的再均衡),把該參數的值設置得大一些,可以減少意外的再均衡,不過檢測節點崩潰需要更長的時間。 4. **`max.partition.fetch.bytes`** 該參數指定了服務器從每個分區里返回給消費者的最大字節數。它的默認值是 1MB,也就是說,KafkaConsumer.poll()方法從每個分區里返回的記錄最多不超 max.partitions.fetch.bytes 指定的字節。如果一個主題有 20 個分區和 5 個消費者,那么每個消費者需要至少 4MB 的可用內存來接收記錄。在為消費者分配內存時,可以給它們多分配一些,因為如果群組里有消費者發生崩潰,剩下的消費者需要處理更多的分區。max.partition.fetch.bytes 的值必須比 Broker 能夠接收的最大消息的字節數(通過 max.message.size 屬性配置)大, 否則消費者可能無法讀取這些消息,導致消費者一直掛起重試,例如,max.message.size 設置為 2MB,而該屬性設置為 1MB,那么當一個生產者可能就會生產一條大小為 2MB的消息,那么就會出現問題,消費者能從分區取回的最大消息大小就只有 1MB,但是數據量是 2MB,所以就會導致消費者一直掛起重試。 在設置該屬性時,另一個需要考慮的因素是消費者處理數據的時間。消費者需要頻繁調用 poll()方法來避免會話過期和發生分區再均衡,如果單次調用 poll()返回的數據太多,消費者需要更多的時間來處理,可能無怯及時進行下一個輪詢來避免會話過期。如果出現這種情況,可以把 max.partitioin.fetch.bytes 值改小,或者延長會話過期時間。 5. **`fetch.min.bytes`** 消費者從服務器獲取記錄的最小字節數,Broker 收到消費者拉取數據的請求的時候,如果可用數據量小于設置的值,那么 Broker 將會等待有足夠可用的數據的時候才返回給消費者,這樣可以降低消費者和 Broker 的工作負載。因為當主題不是很活躍的情況下,就不需要來來回回的處理消息,如果沒有很多可用數據,但消費者的CPU 使用率卻很高,那么就需要把該屬性的值設得比默認值大。如果消費者的數量比較多,把該屬性的值設置得大一點可以降低 Broker 的工作負載。 6. **`fetch.max.wait.ms`** fetch.min.bytes 設置了 Broker 返回給消費者最小的數據量,而fetch.max.wait.ms 設置的則是Broker的等待時間,兩個屬性只要滿足了任何一條,Broker 都會將數據返回給消費者,也就是說舉個例子,fetch.min.bytes 設置成 1MB,fetch.max.wait.ms 設置成 1000ms,那么如果在 1000ms 時間內,如果數據量達到了 1MB,Broker 將會把數據返回給消費者;如果已經過了 1000ms,但是數據量還沒有達到 1MB,那么 Broker 仍然會把當前積累的所有數據返回給消費者。 7. **`receive.buffer.bytes + send.buffer.bytes`** socket 在讀寫數據時用到的 TCP 緩沖區也可以設置大小。如果它們被設為-1 ,就使用操作系統的默認值。如果生產者或消費者與 broker 處于不同的數據中心內,可以適當增大這些值,因為跨數據中心的網絡一般都有比較高的延遲和比較低的帶寬。 8. **`client.id`** Consumer 進程的標識。如果設置成人為可讀的值,跟蹤問題會比較方便。
                  <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>

                              哎呀哎呀视频在线观看