一、Kafka简介概述
Kafka和消息系统类似,它是一个 消息中间件,有生产者和消费者之分。
对于一条数据,可以来一条,系统处理一条,但是如果系统卡顿或者系统处理速度跟不上数据产生速度,那么会造成数据丢失。这时引入Kafka,作为消息的中间件,数据产生后写到Kafka中,系统再从Kafka取数据。因为对于Kafka做到了如下特点:
- 容错
- 分布式
- 可扩容
- 订阅发布
Kafka官网架构图如下,可以看到从数据从生产者Producer发送到Kafka集群,消费者Consumer从订阅的Kafka集群获取到数据。
Kafka架构的名称:
- producer:生产数据的应用
- comsumer:消费数据的应用
- broker:Kafka集群上的一个节点
- topic:数据标签,给数据分类用的
二、Kafka的部署和安装
略…
要注意一点,Kafka需要依赖Zookeeper,先安装好Zookeeper再安装Kafka。
三、Kafka相关命令
kafka 版本 0.11.0.2 下
- 后台启动Kafka命令
setsid ./bin/kafka-server-start.sh ./config/server.properties
## 进入kafka目录下执行
- 创建topic命令
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
## --replication-factor 数据的复制因子,存几份数据副本
## --partitions 数据的分区数
## --topic topic的名字
## 里面的参数根据自己情况修改,下同
- 列出topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
- 查看topic的详细信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
- 启动一个生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
## 启动之后,输出了一堆日志信息,之后就可以在屏幕敲自己的消息了
- 消费者消费消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
## --from-beginning 表示从topic开头开始消费数据