kafka集群安装及配置主要包括两种,一种是在单机上通过配置多个broker来实现,一种在多个服务器上分别安装kafka来实现。
一、单机多broker方式
配置
在安装好kafka后(安装方式见http://blog.csdn.net/yongge1981/article/details/78895893),将conf目录下的server.properties拷贝多份,这里一种拷贝两份分别命名为server1.properties,server2.properties,并修改这两份文件,主要包括:broker.id,port和log.dir,分别设置成不同的值,具体配置如下:
server.properties的内容如下:
broker.id=0
port=9092
log.dir=/usr/local/kafka2111/log
server1.properties的内容如下:
broker.id=1
port=9093
log.dir=/usr/local/kafka2111/log1
server2.properties的内容如下:
broker.id=2
port=9094
log.dir=/usr/local/kafka2111/log2
启动
首先启动zookeeper,这里是一个单机版的zookeeper。
在kafka目录下,分别执行如下命令:
./bin/kafka-server-start.sh conf/server.properties
./bin/kafka-server-start.sh conf/server1.properties
./bin/kafka-server-start.sh conf/server2.properties
注:上述操作都是以root用户来执行的。
创建一个topic,包含有两个Partition分区和2个备份的broker:
./bin/kafka-topic.sh --create --zookeeper xhp1:2181 --replica 2 --partition 2 --topic singledistribute
启动Producer发送消息,定义一个发送给多个broker的Producer,既要在broker-list属性中指定要连接的broker:
./bin/kafka-console-producer.sh --broker-list xhp1:9092,xhp1:9093,xhp1:9094 --topic singledistribute
如果我们要让不同的Producer发送给不同的broker,我们也仅仅需要为每个Producer配置相应的broker-list属性即可。
启动一个消费者来消费消息:
./bin/kafka-console-consumer.sh --zookeeper xhp1:2181 --topic singledistribute --from-beginning
二、多机版配置
首先,安装并配置好分布式的zookeeper服务器,参见http://blog.csdn.net/yongge1981/article/details/78894715。
然后,配置好单机版之后,将kafka拷贝到其它多台服务器上,修改每台服务器上kafka的server.properties文件:
1. 修改broker.id的值,使每台服务器上kafka具有不一样的值;
2. 修改zookeeper.connect的值,基本是每台zookeeper服务器的地址及服务端口号,比如192.168.46.101:2181
启动
首先,启动zookeeper服务,每个节点依次启动;
其次,启动kafka服务器,也是每台节点依次启动。
操作方式类似单机分布式版。
来源:http://blog.csdn.net/minicto/article/details/53911418等
http://blog.csdn.net/suifeng3051/article/details/38321043