1 # 每一個Broker在集群中的唯標識。即使Broker的IP地址發生了變化,broker.id只要沒變,則不會影響consumers的消息情況 2 broker.id=0 3 # 是否允許Topic被刪除。如果是false,使用管理員工具刪除Topic的時候,Kafka 並不會處理此操作 4 delete.topic.enable=true 5 6 # Kafka服務端是否可以根據請求自動創建Topic,默認是true。如果打開此選項,下面三種請求會觸發Topic自動創建: 7 # ①Producer向某個不存在的Topic寫人消息 8 # ②Consumer從某個不存在的Topic讀取消息 9 # ③Consumer從某個不存在的Topic 讀取消息 10 # 建議將此選項設置為false,並在使用Topic之前手動創建 11 auto.create.topics.enable=true 12 ##########下面是服務端網絡相關的配置######### 13 # Kafka Server使用的協議、主機名以及端口的格式如下: 14 # listeners = security_protocol://host_name:port 15 # 參考示例: 16 listeners=PLAINTEXT://your.host.name:9092 17 listeners=PLAINTEXT://:9092 # 這是默認配置,使用PLAINTEXT,端口是9092 18 # 接收請求的線程數 19 num.network.threads= 3 20 # 執行請求的線程數 21 num.io.threads=8 22 # 在介紹下面兩個緩沖區設置之前,先來介紹下相關肯景知識: 23 # 每個TCP socket在內核中都有一個發送緩沖區(SO_SNDBUE )和一個接收緩沖區(SO_ RCVBUF)。接收緩沖區把數據緩存入內 24 # 核,應用進程一直沒有調用read進行讀取的話,此數據會一直緩存在相應socket的接收緩沖區內。需要注意,不管進程是否讀取 25 26 # socket,對端發來的數據都會經由內核接收並且緩存到socket的內核接收緩沖區之中。read所做的工作,就是把內核緩沖區中 27 # 的數據復制到應用層用戶的buffer里面,僅此而已。進程調用send發送的數據的時候,一般情況下,將數據復制進人socket的 28 # 內核發送緩沖區之中,然后send便會在上層返回。換句話說,send返回之時,數據不一定會發送到對端去,send僅僅是把應用 29 # buffer的數據復制進socket的內核發送buffer中 30 31 # TCP連接的SO_SNDBUP緩沖區大小,默認102400,單位是字節,如果是-1,就使用操作系統的默認值 32 socket.send.buffer.bytes=102400 33 # TCP連接的SO_RCVBUE緩沖區大小,默認102400,單位是字節,如果是-1,就使用操作系統的默認值 34 socket.receive.buffer.bytes-102400 35 # 請求的最大長度 36 socket.request.max.bytes=104857600 37 # 用於存儲1og文件的目錄,可以將多個目錄通過逗號分隔,形成一個目錄列表 38 log.dirs=/tmp/kafka-logs 39 # 每個Topic默認的partition數量,默認值是1 40 num.partitions=1 41 # 用來恢復log文件以及關閉時將log數據刷新到磁盤的線程數量,每個目錄對應num.recovery.threads.per.data.dir個線程 42 num.recovery.threads.per.data.dir=1 43 # 每隔多少個消息觸發次flush操作,將內存中的消息刷新到硬盤上 44 log.flush.interval.messages=10000 45 # 每隔多少毫秒觸發一次flush操作,將內存中的消息刷新到硬盤上 46 log.flush.interval.ms=1000 47 # 上面這兩個配置是全局的,可以在Topic中重新設置,並覆蓋這兩個配置 48 49 # 注意:下面有兩種配置,一種是基於時間的策略,另種是基於日志文件大小的策略,兩種策略同是配置的話,只要滿足其中種策略,則觸發Log刪除的操作。刪除操作總是先刪除最舊的日志 50 # 消息在Kafka中保存的時間,168小時之前的1og, 可以被刪除掉 51 log.retention.hours=168 52 # 當剩余空間低於log.retention.bytes字節,則開始刪除1og 53 log.retention.bytes=1073741824 54 # segment日志文件大小的上限值。當超過這個值時,會創建新的segment日志文件,segment文件的相關信息在后面介紹log.segment.bytes=1073741824 55 # 每隔300000ms, logcleaner線程將檢查一次,看是否符合上述保留策略的消息可以被刪除 56 log.retention.check.interval.ms=300000 57 58 # Kafka依賴的ZooKeeper集群地址,可以配置多個ZooKeeper地址,使用選號隔開 59 zookeeper.connect=localhost:2181 60 61 # ZooKeeper連接的超時時間 62 zookeeper.connection.timeout.ms=6000