1)单broker模式
2)单机多broker模式 (伪集群)
3)多机多broker模式 (真正的集群模式)
第一种单broker模式
1.下载Kafka: http://kafka.apache.org/downloads.html
2. 解压Kafka:tar xvf kafka_2.9.1-0.8.2.1.tgz 解压到/usr/local
3. 修改配置文件:
config/zookeeper.properties
1)dataDir=/usr/local/kafka/tmp/zookeeper/
2)clientPort=2181
config/server.properties
1)log.dirs=/usr/local/kafka/tmp/kafka-logs
4. 启动服务
1)启动zookeeper服务
bin/zookeeper-server-start.sh config/zookeeper.properties > tmp/zookeeper.log 2>&1 &
2)启动kafka服务
bin/kafka-server-start.sh config/server.properties > tmp/kafka.log 2>&1 &
3)查看启动是否成功 jps
5. Topic
1)创建主题(test),一个分区、一个副本
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
2)查看所有topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
test)详情
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
第一行是所有Partition的总结。后面的行是每个partition一行。
4)删除主题
bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic test --zookeeper localhost:2181
6.创建生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
7.创建消费者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
第二种单机多broker模式
1. 修改配置文件:
config/zookeeper.properties(和第一种一样)
config/server.properties,复制一个server1.properties和server2.properties
server1.properties
broker.id=1
port=9093
)log.dirs=/usr/local/kafka/tmp/kafka1-logs
修改server2.properties
1) broker.id=2
port=9094
)log.dirs=/usr/local/kafka/tmp/kafka2-logs
2 . 启动服务
1)启动zookeeper服务
bin/zookeeper-server-start.sh config/zookeeper.properties > tmp/zookeeper.log 2>&1 &
2)启动kafka服务
bin/kafka-server-start.sh config/server.properties > tmp/kafka.log 2>&1 &
bin/kafka-server-start.sh config/server1.properties > tmp/kafka1.log 2>&1 &
bin/kafka-server-start.sh config/server2.properties > tmp/kafka2.log 2>&1 &
3)查看启动是否成功 jps
第三种多机多broker模式
192.168.30.105、192.168.30.106
1. 修改配置文件:
config/zookeeper.properties
1) dataDir=/usr/local/kafka/data
tickTime=2000
)initLimit=5
4)syncLimit=2
5)zookeeper主机列表清单
server.104=192.168.30.104:2888:3888
server.105=192.168.30.105:2888:3888
server.106=192.168.30.106:2888:3888
/usr/local/kafka/data/中新建myid文件,
192.168.30.104主机内容为104
主机内容为105
主机内容为106
config/server.properties,复制一个server1.properties和server2.properties
server1.properties
broker.id=***
192.168.30.104主机 内容为104
主机内容为105
主机内容为106
host.name=192.168.30.106
192.168.30.104主机内容为192.168.30.104
主机内容为192.168.30.105
主机内容为192.168.30.106
)log.dirs=/usr/local/kafka/tmp/kafka-logs
4)num.partitions=2
5)zookeeper.connect=192.168.30.104:2181,192.168.30.105:2181,192.168.30.106:2181
2 . 启动服务
1)启动zookeeper服务(依次启动3台主机)
bin/zookeeper-server-start.sh config/zookeeper.properties > tmp/zookeeper.log 2>&1 &
(依次启动3台主机)
bin/kafka-server-start.sh config/server.properties > tmp/kafka.log 2>&1 &
3)查看启动是否成功 jps
3. Topic
1)创建主题(test),2个分区、3个副本
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 2 --topic mall