您好,登錄后才能下訂單哦!
這篇文章主要介紹Kafka中容易混淆的概念有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
broker指的是kafka的服務端,可以是一個服務器也可以是一個集群。producer和consumer都相當于這個服務端的客戶端。
broker-list指定集群中的一個或者多個服務器,一般我們再使用console producer的時候,這個參數是必備參數,另外一個必備的參數是topic,如下示例:
C:\kafka\kafka_2.12-1.1.1
λ .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test20190713
>this is a test
>
本地主機如果要模擬多個broker,方法是復制多個server.properties,然后修改里面的端口, broker.id等配置模擬多個broker集群。
比如模擬三個broker的情況,首先把config 目錄下的 server.properties 復制兩份,分別命名為 server-1.properties 和 server-2.properties,然后修改這兩個文件的下列屬性,
server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=C:/kafka/broker1
server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=C:/kafka/broker2
broker.id 用來唯一標識每一個 broker,每個broker都有一個唯一的id值用來區分彼此。Kafka在啟動時會在zookeeper中/brokers/ids路徑下創建一個與當前broker的id為名稱的虛節點,Kafka的健康狀態檢查就依賴于此節點。
我們可以打開一個zk的客戶端,通過ls命令來查看下這個路徑下的內容:
λ .\bin\windows\zookeeper-shell.bat localhost:2181
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled
ls
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
ls /brokers/ids
[0]
可以看到我們默認啟動的這個broker.id為0的節點。
bootstrap-servers指的是目標集群的服務器地址,這個和broker-list功能是一樣的,只不過我們在console producer要求用后者。
以前我們使用console consumer測試消息收發時會這樣寫:
C:\kafka\kafka_2.12-1.1.1
λ .\bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic test20190713
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
這樣可以接收到生產者控制臺發送的消息。
現在我們也可以這樣寫,
C:\kafka\kafka_2.12-1.1.1 λ .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test20190713
你可以自己測試下,也是可以收到消息的。
前者是老版本的用法,0.8以前的kafka,消費的進度(offset)是寫在zk中的,所以consumer需要知道zk的地址。后來的版本都統一由broker管理,所以就用bootstrap-server了。
以上是“Kafka中容易混淆的概念有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。