一、kafka概述
一句话讲,Kafka就是一种消息队列,常用在实时业务中写流处理应用。它分为三块,生产者producer,消费者consumer,消息代理broker,已发送的消息保存在一组服务器中。topic就是特定类型的消息流。producer发送消息到topic中,cumsumer来订阅。
二、kafka和zookeeper的关系
kafka依赖zookeeper,zookeeper是kafka的分布式协调框架,作用是:
1kafka使用zookeeper来存储meta信息,比如consumer读到哪了,保存kafka集群信息。
2.zookeeper协调好producer和consumer 的关系,实现负载均衡。
三、kafka的使用
step1:启动服务
首先启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka
bin/kafka-server-start.sh config/server.properties
step2:创建topic
创建一个叫hello的topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic hello
通过list命令查看创建的topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
step3:发送消息和接收消息
运行producer并在控制台中输一些消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello
hello,jassica
how are you?
启动comsumer读取消息并输出到标准输出:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic hello --from-beginning
hello,jassica
how are you?