默認的 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 如果沒有任何資源模式符合特定資源,則該資源就沒有關聯ACLs。在此情況下,若此屬性設定為 true,則所有使用者均可存取資源,而非僅限超級使用者。 true true
auto.create.topics.enable 在伺服器上啟用主題自動建立功能。 false false
auto.leader.rebalance.enable 啟用自動領導者平衡。背景執行緒會視需要以固定間隔檢查並啟動領導者平衡。 true true
default.replication.factor 自動建立主題的預設複寫係數。 如果是 3 個可用區域中的叢集,則是 3,如果是 2 個可用區域中的叢集,則是 2。 如果是 3 個可用區域中的叢集,則是 3,如果是 2 個可用區域中的叢集,則是 2。

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] 中的整數

-2 表示無限制 -2 表示無限制

local.retention.ms

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

local.retention.ms 和 local.retention.bytes 的值類似 log.retention。MSK使用此組態來決定記錄區段應保留在本機儲存區中的時間長度。現有的 log.retention.* 組態是主題分區的保留組態。這同時包括本地和遠程儲存。有效值為大於 0 的整數。
-2 表示無限制 -2 表示無限制

log.message.timestamp.difference.max.ms

代理程式接收訊息的時間戳記與訊息中指定的時間戳記之最大允許差值。如果 log.message. 時間戳記類型 =CreateTime,則如果時間戳記中的差異超過此閾值,則會拒絕消息。如果記錄. 消息. 時間戳. 類型 =,則忽略此配置。LogAppendTime允許的時間戳記差值上限不應該大於 log.retention.ms,以避免不必要地頻繁滾動日誌。 9223372036854775807 對於 Kafka 2.8.2.tiered,應是 86400000
log.segment.bytes 單一日誌檔案的大小上限。 1073741824 134217728
min.insync.replicas

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

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

如果是 3 個可用區域中的叢集,則是 2,如果是 2 個可用區域中的叢集,則是 1。 如果是 3 個可用區域中的叢集,則是 2,如果是 2 個可用區域中的叢集,則是 1。
num.io.threads 伺服器用於生產請求的執行緒數量,可能包含磁碟 I/O。 8 max(8,vCPUs),其中 vCPUs 取決於代理的實例大小
num.network.threads 伺服器用於從網路接收請求並對網路傳送回應所用的執行緒數量。 5 max(5, vCPUs /2),其中 vCPUs 取決於經紀人的實例大小
num.partitions 每個主題的日誌磁碟分割預設數量。 1 1
num.replica.fetchers 用於從來源代理程式複寫訊息的擷取器執行緒數量。增加此值就可以增加追隨代理程式中的 I/O 平行處理程度。 2 max(2, vCPUs /4),其中 vCPUs 取決於經紀人的實例大小

remote.log.msk.disable.policy

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

N/A DELETE
remote.log.reader.threads 遠端日誌讀取器執行緒集區大小,用於排程從遠端儲存擷取資料的任務。 N/A 最大值(10, vCPUs * 0.67),其中 vCPUs 取決於經紀人的實例大小

remote.storage.enable

如果設定為 true,會啟用主題的分層 (遠端) 儲存。如果設定為 false 且 remote.log.msk.disable.policy 設定為「刪除」,會停用主題層級分層儲存。停用分層儲存時,會從遠端儲存刪除資料。主題的分層儲存停用後就無法再次啟用。 false true
replica.lag.time.max.ms 如果追隨者沒有發送任何 fetch 請求,或者至少在這個毫秒數內沒有消耗到領導者的日誌結束偏移量,則領導者將從. ISR 30000 30000

retention.ms

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

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

至少 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集合中沒有的複本作為領導者作為最後的手段,即使這可能會導致資料遺失。 true false
zookeeper.session.timeout.ms

Apache ZooKeeper 工作階段逾時 (以毫秒計)。

18000 18000
zookeeper.set.acl 設置客戶端使用安全ACLs。 false false

如需有關指定自訂組態值的詳細資訊,請參閱自訂 MSK 組態