預設 Amazon MSK 組態 - Amazon Managed Streaming for Apache Kafka

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

預設 Amazon MSK 組態

建立 MSK 叢集且未指定自訂 MSK 組態時,Amazon MSK 會建立並使用預設組態,組態中的值則列於下表中。對於不在此表格中的屬性,Amazon MSK 會使用與您的 Apache Kafka 版本相關聯的預設值。如需這些預設值的清單,請參閱 Apache Kafka Configuration 。

預設組態值
非分層儲存叢集的預設值 已啟用分層儲存之叢集的預設值 allow.everyone.if.no.acl.found 如果沒有資源模式符合特定資源,資源就沒有相關聯的 ACL。在此情況下,若此屬性設定為 true ,則所有使用者均可存取資源,而非僅限超級使用者。 true auto.create.topics.enable 在伺服器上啟用主題自動建立功能。 false false auto.leader.rebalance.enable 啟用自動領導者平衡。背景執行緒會視需要以固定間隔檢查並啟動領導者平衡。 default.replication.factor 自動建立主題的預設複寫係數。 如果是 3 個可用區域中的叢集,則是 3,如果是 2 個可用區域中的叢集,則是 2。 如果是 3 個可用區域中的叢集,則是 3,如果是 2 個可用區域中的叢集,則是 2。 -2 表示無限制 -2 表示無限制

本機日誌區段刪除前保留的時間 (毫秒)。如未設定此值,Amazon MSK 將採用 log.retention.ms 的值。有效值應該一律小於或等於 log.retention.bytes 值。預設值 -2 指示本機保留沒有限制。這對應於 -1 的 retention.ms/bytes 設定值。

local.retention.ms 和 local.retention.bytes 的值類似 log.retention。MSK 會使用此組態來確定日誌區段應該在本地儲存保留多長時間。現有的 log.retention.* 組態是主題分區的保留組態。這同時包括本地和遠程儲存。有效值為大於 0 的整數。
-2 表示無限制 -2 表示無限制 Kafka 3.6.0 已棄用此組態。已新增兩個組態 log.message.timestamp.after.max.ms log.message.timestamp.before.max.ms 和 。代理程式接收訊息的時間戳記與訊息中指定的時間戳記之最大允許差值。若 log.message.timestamp.type=CreateTime,且時間戳記差值超過此閾值,則訊息將被拒絕。若 log.message.timestamp.type=LogAppendTime,則此組態會被忽略。允許的時間戳記差值上限不應該大於 log.retention.ms,以避免不必要地頻繁滾動日誌。 9223372036854775807 86400000 表示 Kafka 2.8.2.tiered 和 Kafka 3.7.x 分層。 log.segment.bytes 單一日誌檔案的大小上限。 1073741824 134217728 min.insync.replicas 如果是 3 個可用區域中的叢集,則是 2,如果是 2 個可用區域中的叢集,則是 1。 如果是 3 個可用區域中的叢集,則是 2,如果是 2 個可用區域中的叢集,則是 1。 num.io.threads 伺服器用於生產請求的執行緒數量,可能包含磁碟 I/O。 最大值 (8 個,vCPU),vCPU 數量取決於代理程式的執行個體大小 num.network.threads 伺服器用來從網路接收請求並將回應傳送到網路的執行緒數量。 最大值 (5 個,vCPU/2 個),vCPU 數量取決於代理程式的執行個體大小 num.partitions 每個主題的日誌磁碟分割預設數量。 num.replica.fetchers 用於從來源代理程式複寫訊息的擷取器執行緒數量。增加此值就可以增加追隨代理程式中的 I/O 平行處理程度。 最大值 (2 個,vCPU/4 個),vCPU 數量取決於代理程式的執行個體大小 remote.log.reader.threads 遠端日誌讀取器執行緒集區大小,用於排程從遠端儲存擷取資料的任務。 最大值 (10 個,vCPU * 0.67),vCPU 數量取決於代理程式的執行個體大小 如果設定為 true,會啟用主題的分層 (遠端) 儲存。如果設定為 false 且 remote.log.msk.disable.policy 設定為「刪除」,會停用主題層級分層儲存。停用分層儲存時,會從遠端儲存刪除資料。主題的分層儲存停用後就無法再次啟用。 false false replica.lag.time.max.ms 如果追隨者並未傳送任何擷取請求,或是並未在至少這個毫秒數,使用到領導者的日誌端偏移上限,則領導者會從 ISR 中移除跟隨者。 30000 30000 至少 259,200,000 毫秒 (3 天)。-1 表示無限保留。 至少 259,200,000 毫秒 (3 天)。-1 表示無限保留。 socket.receive.buffer.bytes 通訊端伺服器通訊埠的 SO_RCVBUF 緩衝區。若此值為 -1,將採用 OS 預設值。 102400 102400 socket.request.max.bytes 通訊端要求內的位元組數量上限。 104857600 104857600 socket.send.buffer.bytes 通訊端伺服器通訊埠的 SO_SNDBUF 緩衝區。若此值為 -1,將採用 OS 預設值。 102400 102400 unclean.leader.election.enable 指示您是否不在 ISR 集中的複本作為領導者與最後手段,即使這可能會導致資料遺失。 false zookeeper.session.timeout.ms 18000 18000 zookeeper.set.acl 設定使用安全 ACL的用戶端。

local.retention.bytes

刪除舊區段之前分區的本機日誌區段大小上限。如未設定此值,將採用 log.retention.bytes 的值。有效值應該一律小於或等於 log.retention.bytes 值。預設值 -2 指示本機保留沒有限制。這對應於 -1 的 retention.ms/bytes 設定值。local.retention.ms 和 local.retention.bytes 的屬性與 log.retention 類似,因為它們都是用於確定日誌區段應該在本地儲存保留多長時間。現有的 log.retention.* 組態是主題分區的保留組態。這同時包括本地和遠程儲存。有效值:[-2; +Inf] 中的整數

local.retention.ms

log.message.timestamp.difference.max.ms

生產者將 ACK (生產者從 Kafka 代理程式獲取的確認) 值設定為 "all" (或 "-1" ) 後,min.insync.replicas 的值會指定確認寫入視為成功前,須接受的複本數量下限。若未達到此下限,則生產者會引發例外狀況 (NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。

若同時使用 min.insync.replicas 和 ACK 的值,您可強制執行更大數量的耐用性保證。例如,您可以建立複寫係數為 3 的主題,將 min.insync.replicas 設定為 2,ACK 設為 "all" 來產生。若多數複本未接收寫入,如此可確保生產者會引發例外狀況。

remote.log.msk.disable.policy

與 remote.storage.enable 搭配使用以停用分層儲存。將此政策設定為「刪除」即指示,當您將 remote.storage.enable 設定為 false 時,會刪除分層儲存中的資料。

remote.storage.enable

retention.ms

必要欄位。最短時間為 3 天。沒有預設值,因為該設定是強制性的。

Amazon MSK 使用保留 retention.ms 的值搭配 local.retention.ms 來確定資料從本機移至分層儲存的時間。local.retention.ms 的值指定何時將資料從本地移至分層儲存。retention.ms 值指定何時從分層儲存中移除資料 (也就是從叢集中移除)。有效值:[-1; +Inf] 中的整數

以毫秒為單位的 Apache ZooKeeper 工作階段逾時。