在Linux上配置Kafka時,server.properties
文件是主要的配置文件,它包含了多個關鍵參數,用于定義Kafka集群的行為和性能。以下是一些必須和常用的配置參數及其解釋:
broker.id
: 每一個Broker在集群中的唯一標識。即使Broker的IP地址發生了變化,只要broker.id
不變,就不會影響consumers的消息情況。log.dirs
: 用于存儲Kafka日志文件的目錄,可以配置多個目錄以提高讀寫性能和故障轉移能力。listeners
: Kafka服務端監聽的協議、主機名以及端口的格式。例如:listeners=PLAINTEXT://your.host.name:9092
num.network.threads
: 接收請求的線程數。num.io.threads
: 執行請求的線程數。socket.send.buffer.bytes
: TCP連接的發送緩沖區大小。socket.receive.buffer.bytes
: TCP連接的接收緩沖區大小。socket.request.max.bytes
: 請求的最大長度。num.partitions
: 每個Topic默認的partition數量,默認值是1。default.replication.factor
: 新建Topic的默認副本數。offsets.topic.replication.factor
: offset topic的replicas數量。transaction.state.log.replication.factor
: 事務主題的復制因子。log.retention.hours
: 消息在Kafka中保存的時間,超過這個時間的消息會被刪除。log.retention.bytes
: 當剩余空間低于此值時,開始刪除日志。log.segment.bytes
: segment日志文件大小的上限值。log.retention.check.interval.ms
: 檢查日志文件是否過期的間隔時間。log.cleanup.policy
: 日志清理策略,可以是delete
或compact
。zookeeper.connect
: 連接到Zookeeper集群的地址。auto.create.topics.enable
: 是否允許自動創建Topic,建議在生產環境中設置為false。delete.topic.enable
: 是否允許刪除Topic。請注意,這些只是Kafka配置中的一部分參數,具體配置可能需要根據實際需求和集群規模進行調整。在修改配置文件后,通常需要重啟Kafka服務以使更改生效。