Kafka-02

99 阅读2分钟

Kafka是由Apache软件基金会开发的一款开源流处理平台和消息代理系统,它最初由LinkedIn公司开发并于2011年开源。Kafka的设计目标是为了解决大规模的实时数据传输和处理问题。它是一种高吞吐量、低延迟、高可靠性的分布式发布-订阅消息系统。

Kafka的主要特点包括:

  1. 消息持久性:Kafka可以将消息持久化保存在磁盘上,确保数据的可靠性和持久性,同时支持高效的读写操作。
  2. 分布式架构:Kafka采用分布式架构,允许多个生产者将消息发布到多个主题(Topics),并且多个消费者可以从这些主题订阅消息。
  3. 扩展性:Kafka的分区机制可以使其在不同节点上分布消息,实现水平扩展,从而提高系统的吞吐量和容量。
  4. 高吞吐量:Kafka可以处理大规模的数据流,支持每秒数十万条消息的处理能力。
  5. 实时处理:Kafka的设计目标之一是实时数据处理,它允许消费者实时获取消息,以满足实时性需求。
  6. 多语言支持: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完成数据流转环境的搭建。