kafka是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统
一、下载&安装&配置&启动:
1、下载:
https://kafka.apache.org/downloads
注意:Kafka的版需要与对应的java版本适配,比如本人下载的kafka_2.11-2.2.0.tgz,这个kafka需要依赖Java8
2、安装
tar -zxvf kafka_2.11-2.2.0.tgz
3、配置
cd kafka_2.11-2.2.0
mkdir kafka-*-logs # 后面需要配置对config/server-*.properties中,注意:其中的meta.properties文件,每一个broker都需要对应一个上述的logs
cd config
cp server.properties server-1.properties
cp server.properties server-2.properties
vi server-1.properties: # 修改对应的broker、port、logs、zookeeper
broker.id=1 listeners=PLAINTEXT://:19093 zookeeper.connect=ip:12181,ip:12182,ip:12183 log.dirs=/home/work/huangshouxi/hsx/elk/install/kafka_2.11-2.2.0/kafka-1-logs # 其他配置不用修改同样:server-2.properties 也要做对应的修改
broker.id=2 listeners=PLAINTEXT://:19094 zookeeper.connect=ip:12181,ip:12182,ip:12183 log.dirs=/home/work/huangshouxi/hsx/elk/install/kafka_2.11-2.2.0/kafka-2-logs # 其他配置不用修改上述一个kafka集群(伪集群)就搭建好了,其实应该搭建在不同的机器上,同时最少由3台机器组成
4、启动&停止:
启动:
./bin/kafka-server-start.sh ./config/server-1.properties &
./bin/kafka-server-start.sh ./config/server-2.properties &
停止:
./bin/kafka-server-stop.sh ./config/server-1.properties &
./bin/kafka-server-stop.sh ./config/server-2.properties &
注意:停止也可可以直接kill掉进程
二、运行
1、创建一个topic,备份设置为2
./bin/kafka-topics.sh --create --zookeeper ip:12181 --replication-factor 2 --partitions 1 --topic my-replicated-topic Created topic my-replicated-topic.注意:上述只有两个broker组成的kafka集群,备份时不能超过2个。
2、查看所有的topic
./bin/kafka-topics.sh --zookeeper ip:12181 --list __consumer_offsets my-replicated-topic test3、删除某个topic
./bin/kafka-topics.sh -delete -zookeeper ip:12181 -topic my-replicated-topic Topic my-replicated-topic is marked for deletion. Note: This will have no impact if delete.topic.enable is not set to true. ./bin/kafka-topics.sh --zookeeper ip:12181 --list __consumer_offsets test4、发送消息
./bin/kafka-console-producer.sh --broker-list ip:19093 --topic my-replicated-topic >test >Hello >World5、消费消息
./bin/kafka-console-consumer.sh --bootstrap-server ip:19093 --topic my-replicated-topic --from-beginning6、查看集群在做什么
bin/kafka-topics.sh --describe --zookeeper ip:12181 --topic my-replicated-topic