Kafka是由Apache软件基金会开发的一款开源流处理平台和消息代理系统,它最初由LinkedIn公司开发并于2011年开源。Kafka的设计目标是为了解决大规模的实时数据传输和处理问题。它是一种高吞吐量、低延迟、高可靠性的分布式发布-订阅消息系统。
Kafka的主要特点包括:
- 消息持久性:Kafka可以将消息持久化保存在磁盘上,确保数据的可靠性和持久性,同时支持高效的读写操作。
- 分布式架构:Kafka采用分布式架构,允许多个生产者将消息发布到多个主题(Topics),并且多个消费者可以从这些主题订阅消息。
- 扩展性:Kafka的分区机制可以使其在不同节点上分布消息,实现水平扩展,从而提高系统的吞吐量和容量。
- 高吞吐量:Kafka可以处理大规模的数据流,支持每秒数十万条消息的处理能力。
- 实时处理:Kafka的设计目标之一是实时数据处理,它允许消费者实时获取消息,以满足实时性需求。
- 多语言支持:Kafka提供多种编程语言的客户端API,方便开发者使用不同编程语言进行消息传输和处理。
Kafka官网给了一个简单的使用样例,在windows系统我照着做了下:
1 下载kafaka软件包并解压:
https://dlcdn.apache.org/kafka/3.5.0/kafka_2.13-3.5.0.tgz
2.1 启动zookeeper(二选一)
$ bin\windows\zookeeper-server-start.bat config\zookeeper.properties
2.2 启动kraft(二选一)
bin\windows\kafka-server-start.bat config\server.properties
3 启动kafka
$ bin\windows\kafka-server-start.bat config\server.properties
4 创建topic
$ bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server localhost:9092
5 查询topic
$ bin\windows\kafka-topics.bat --describe --topic quickstart-events --bootstrap-server localhost:9092
6 发送消息
bin\windows\kafka-console-producer.bat --topic quickstart-events --bootstrap-server localhost:9092
This is my first event
This is my second event
7 消费消息
bin\windows\kafka-console-consumer.bat --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
echo foo> test.txt
echo bar>> test.txt
8 配置启动两个connect(第一个读取test.txt内容到kafaka,第二个消费kafka消息并写入到test.sink.txt)
bin\windows\connect-standalone.bat config\connect-standalone.properties config\connect-file-source.properties config\connect-file-sink.properties
9 查询kafka写入的消息
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic connect-test --from-beginning
上面简单地使用了下Kafka,详情参考kafka.apache.org/documentati…, 后面将基于Scala和Azure Databrick完成数据流转环境的搭建。