最新官网quickstart
kafka下载并解压
点击此处下载我采用的版本是0.11
#解压到对应目录
tar -zxvf kafka_2.11-0.11.0.3.tgz
#copy三份
cp kafka_2.11-0.11.0.3 kafka_2.11-0.11.0.3-1
cp kafka_2.11-0.11.0.3 kafka_2.11-0.11.0.3-2
mv kafka_2.11-0.11.0.3 kafka_2.11-0.11.0.3-3
#创建log文件
cd kafka_2.11-0.11.0.3-1
mkdir log
cd kafka_2.11-0.11.0.3-2
mkdir log
cd kafka_2.11-0.11.0.3-3
mkdir log
修改配置文件
cd config/
vi server.properties
kafka_2.11-0.11.0.3-1配置文件
#kafka broker 唯一标识
broker.id=1
#可以删除topic
delete.topic.enable=true
# ip地址
hostname=localhost
# 端口号
port=9091
# 日志文件
log.dirs=/Users/momo/Documents/software/kafka_2.11-0.11.0.3-1/log
# zk信息
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
kafka_2.11-0.11.0.3-1配置文件
#kafka broker 唯一标识
broker.id=2
#可以删除topic
delete.topic.enable=true
# ip地址
hostname=localhost
# 端口号
port=9092
# 日志文件
log.dirs=/Users/momo/Documents/software/kafka_2.11-0.11.0.3-2/log
# zk信息
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
kafka_2.11-0.11.0.3-1配置文件
#kafka broker 唯一标识
broker.id=3
#可以删除topic
delete.topic.enable=true
# ip地址
hostname=localhost
# 端口号
port=9093
# 日志文件
log.dirs=/Users/momo/Documents/software/kafka_2.11-0.11.0.3-3/log
# zk信息
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
启动kafka
启动kafka之前需要启动zk
zk配置具体可查看:zk单机伪集群搭建
cd kafka_2.11-0.11.0.3-1
bin/kafka-server-start.sh config/server.properties &
cd kafka_2.11-0.11.0.3-2
bin/kafka-server-start.sh config/server.properties &
cd kafka_2.11-0.11.0.3-3
bin/kafka-server-start.sh config/server.properties &
判断kafka是否启动成功
jps
,因为kafka,zk都是依靠jdk,所以直接使用jdk的内置命令jps即可查看
创建一个拥有三个副本的集群
# 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic test
# 查看topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
# 生产者
bin/kafka-console-producer.sh --broker-list localhost:9091 --topic test
# 消费者 --from-beginning的含义为从offset 为 0 开始读取
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
删除topic
bin\kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
注意删除topic指的是逻辑删除,kafka会输出
Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
在zookeeper上添加/admin/delete_topics/test节点,也提醒了我们,需要提前打开delete.topic.enable开关。
zk查看kafka信息
# 启动zk客户端
cd zookeeper-3.6.3-1/bin
./zkCli.sh
#查看所有功能
ls /
#查看逻辑删除的topic
ls /admin
#显示
[delete_topics]
#继续查看
ls /admin/delete_topics
# 显示
test 即我们刚刚删除的topic
在较新版本(2.2 及更高版本)的 Kafka 不再需要 ZooKeeper 连接字符串,即- -zookeeper localhost:2181。使用 Kafka Broker的 --bootstrap-server localhost:9092来替代- -zookeeper localhost:2181。
即使用命令:
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
替代命令:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
一、无key型消息
默认情况下,所生产的消息是没有 key 的,命令如下:
`bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topicName
二、有key型消息
当需要为消息指定 key 时,可使用如下命令:
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topicName --property parse.key=true
默认消息键与消息值间使用“Tab键”进行分隔,切勿使用转义字符(\t),如下所示:
>Lei Li Hello Kafka!
>Meimei Han 你好 kafka!
如上信息表示所生产的消息“Lei Li”为消息键,“Hello Kafka”为消息值。