Kafka
概念:
Kafka作为一个分布式的流平台具有三个关键能力:
1.发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统
2.以容错的方式存储消息(流)
3.在消息流发生时处理它们
优势:
1.构建实时的流数据管道,可靠地获取系统和应用程序之间的数据
2.构建实时流的应用程序,对数据流进行转换或反应
首先几个概念:
1.kafka作为一个集群运行在一个或多个服务器上。
2.kafka集群存储的消息是以topic为类别记录的。
3.每个消息(也叫记录record,我习惯叫消息)是由一个key,一个value和时间戳构成。
kafka有四个核心API:
1.应用程序使用 Producer API 发布消息到1个或多个topic(主题)。
2.应用程序使用 Consumer API 来订阅一个或多个topic,并处理产生的消息。
3.应用程序使用StreamsAPI充当一个流处理器,从1个或多个topic消费输入流,
并生产一个输出流到1个或多个输出topic,有效地将输入流转换到输出流。
4.ConnectorAPI允许构建或运行可重复使用的生产者或消费者,将topic连接到现有的应用程序或数据系统。
下载安装:
我是在自己的mac安装的,下面给出安装命令:
brew install kafka (会自动安装Zookeeper)
启动:
brew services start zookeeper
brew services start kafka
if you don't want/need a background service you can just run:
zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
使用kafka:
1.创建一个名为 dog 的Topic, 只有一个分区和一个备份
kafka-topics --create --zookeeper localhost:9092 --replication-factor 1 --partitions 1 --topic dog
2.查看创建的topic信息
kafka-topics --list --zookeeper localhost:9092
3.发送消息
kafka-console-producer --broker-list localhost:9092 --topic dog
4.消费消息
kafka-console-consumer --bootstrap-server localhost:9092 --topic dog
生产消息 和 消费消息 见下图:
9AC323F5-A495-4A5F-BE2C-86990F4C15EC.png