Kafka下载地址:Apache Kafka
1.解压资源包
tar xf kafka_2.12-3.1.0.tgz
2.进入Kafka目录
cd kafka_2.12-3.1.0/
3.启动内置zookeeper
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zoo.log &
4.启动Kafka
nohup bin/kafka-server-start.sh config/server.properties > kafka.log &
5.创建topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 --create --topic test
参数解释
--bootstrap-server localhost:9092
在Kafka版本大于2.1版本中,启动客户端连接Kafka服务时使用。并且,即使列表里面填了多个节点,只要有一个可用就行了。
--partitions 1
指定分区数,理论上分区数越多吞吐量越高,系统维护分区的成本也越高,同一个分区不允许被同一个组的多个consumer消费,多个分区允许被一个consumer消费
--replication-factor
指定副本数量,副本是将一个broker的数据复制到其它副本上去,副本数量不能超过broker数量
--create --topic test
创建名叫test的topic
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
6.启动topic为test的producer
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --consumer-property group.id=mygroup --from-beginning
参数解释
--consumer-property group.id=mygroup
规定消费者在哪个组,同一个组的consumer监听只有一个partitions的topic时,只有一个consumer能获取到消息,consumer与partitions相同时,consumer监听不同的partitions的消息
--from-beginning
读取历史未消费的数据
7.列出所有topic
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
8.查看topic详情
bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test
9.修改topic的partitions数量,数量要大于partitions当前数量
bin/kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic test --partitions 1
10.删除topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic test --delete