使用不一样的namespace让不一样的kafka/Storm链接同一个zookeeper

背景介绍:java

 须要部署2个kafka独立环境,可是只有一个zookeeper集群。app

须要部署2个独立的storm环境,可是只有一个zookeeper集群。this

--------------------------spa

kafka配置rest

--------------------------orm

kafka的config/server.properties中经过zookeeper.connect配置zookeeper,一般状况下,咱们配置server

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

 

这个时候,若是两个kafka的broker.id都为0的话,第二个kafka没法启动,启动时会报异常: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.it

 

若是修改第二个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"

相关文章
相关标签/搜索