Kafka概述
和消息系统类似
消息中间件:生产者和消费者 麻麻:生产者 你:消费者 馒头:数据流 正常情况下:生产一个 消费一个 其他情况: 一直生产,你吃到某一个馒头时,你卡主(机器故障),馒头就丢失了 一直生产,做馒头速度快,你吃来不及,馒头也就丢失了 拿个碗/篮子,馒头做好以后先放到篮子里,你要吃的时候去篮子里面取出来吃 篮子/框:Kafka 当篮子慢了,馒头就装不下了,咋办? 多准备几个篮子 === Kafka的扩容复制代码
Kafka架构
producer: 生产者,就是生产馒头(老妈) consumer: 消费者,就是吃馒头的(你) broker: 篮子 topic: 主题,给馒头带一个标签,topica的馒头时给你的,topiccb的馒头时给你弟弟吃的复制代码
单节点,单broker的部署及使用
配置
$KAFKA_HOME/config/server.properties broker.id:0 listeners 9092 host.name localhost(hostname) log.dirs 自定义一个 zookeeper.connect zk复制代码
启动
zkServer.sh start //启动zkbin/kafka-server-start.sh $KAFKA_HOME/config/server.properties复制代码
创建topic ==zk==
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello_topic复制代码
查看所有topic
bin/kafka-topics.sh --list --zookeeper localhost:2181复制代码
发送消息 ==broker==
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test复制代码
消费消息 ==zk==
bin/kafka-console-consumer.sh --zookeeper localhost:9092 --topic test --from-beginning--from-beginning 表示从头开始消费复制代码
查看所有topic的详细信息
kafka-topics.sh --describe --zookeeper localhost:2181 复制代码
查看指定topic的详细信息
kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello_topic复制代码
多结点broker
配置及启动
server-1.propertiesserver-2.propertiesserver-3.properties broker.id: 1/2/3 listeners 9093/9094/9095 log.dirsbin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties &复制代码
创建topic ==zk==
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my_replicated_topic复制代码
发送消息
kafka-console-producer.sh --broker-list localhost:9093,localhost:9094,localhost:9095 --topic my_replicated_topic复制代码
消费消息
kafka-console-consumer.sh --zookeeper localhost:2181 --topic my_replicated_topic --from-beginning复制代码