使用不同的namespace讓不同的kafka/Storm連接同一個zookeeper


背景介紹:

 需要部署2個kafka獨立環境,但是只有一個zookeeper集群。

需要部署2個獨立的storm環境,但是只有一個zookeeper集群。

--------------------------

kafka配置

--------------------------

kafka的config/server.properties中通過zookeeper.connect配置zookeeper,通常情況下,我們配置

zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181

 

這個時候,如果兩個kafka的broker.id都為0的話,第二個kafka無法啟動,啟動時會報異常:

java.lang.RuntimeException: A broker is already registered on the path /brokers/ids/0. This probably indicates that you either have configured a brokerid that is already in use, or else you have shutdown this broker and restarted it faster than the zookeeper timeout so it appears to be re-registering.

 

如果修改第二個kafka的broker.id,則kafka變成了一個集群,而我想要的是兩套獨立的kafka使用同一個zk。

 

此時需要使用zk的命名空間進行配置,只需要在zookeeper.connect配置后,定義不同的命名空間即可,kafka啟動后,會在zk上自動創建命名空間。

kafka1:zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181/kafka_namespace1

kafka2:zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181/kafka_namespace2

-------------------------------------------------------------------------------------------------------

------------------

storm配置

------------------

在storm.yaml(${STORM_HOME}/conf目錄下)中,配置

 

 

Storm 1:

storm.zookeeper.servers:
- "192.168.1.101"
- "192.168.1.102"
- "192.168.1.103"

 

 storm.zookeeper.root: "/storm_xxxx"

 

Storm 2:

 

storm.zookeeper.servers:
- "192.168.1.101"
- "192.168.1.102"
- "192.168.1.103"

 

 storm.zookeeper.root: "/storm_ssss"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM