是什么?

Apache Kafka 是一个开源的、分布式的事件流平台,用于高性能数据管道、流分析、数据集成和关键任务的应用场景。

应用场景

  1. 实时处理支付和金融交易。【证券、保险、银行行业】
  2. 实时跟踪和监控汽车、卡车、车队和货运。【物流、汽车行业】
  3. 持续采集和分析来自物联网设备或者其他设备的传感器数据。【工厂】
  4. 收集客户和订单并立即做出反应。【零售、酒店、旅游行业】
  5. 监控医院护理中的病人,预测病情变化。【医疗行业】
  6. 连接、存储和提供不同部门产生的数据。
  7. 作为数据平台、事件驱动架构和微服务的基础。

3个关键功能

  1. 发布和订阅事件流,包括从其他系统持续写入/导出数据。
  2. 持久可靠地存储事件流,存储时间不限。
  3. 在事件发生时或追溯处理事件流。

事件概念的理解

事件记录了世界或企业发生的某件事情。在文档中,它也被称为记录或者消息。向Kakfa读取或写入数据时,是以事件的形式进行的。从概念上讲,一个事件有一个键、值、时间戳和可选的元数据头。
事件关键字:Alice
事件值:向 Bob 支付了200美元
事件时间戳:2020年6月25日下午2点06分

不能错过的知识

  • 使用 Kafka 可以让生产者(发布写入)和消费者(订阅读取、处理)完全解耦、互不相干。
  • 事件被组织并持久地存储在主题中。简单来说,主题类似于文件系统的文件夹。
  • 主题总是多生产者和多订阅者。
  • 主题中的事件可以根据需要随时读取,与传统的消息系统不同,事件在读取后不会被删除。相反,您可以定义。
  • 主题分区,相同键的事件会写入到同一个分区。

Kafka API

  1. Admin API 用于管理和检查主题、代理和其他 Kafka 对象。
  2. Producder API 用于向一个或多个 Kafka 主题发布写入事件流。
  3. Consumer API 用于订阅读取一个或多个主题,并处理向它们生成的事件流。
  4. Streams API 用于实现流处理应用程序和微服务。提供更高级的功能来处理事件流,包括转换、聚合和连接等有状态操作。从一个或多个主题读取输入,以便向一个或多个主题生成输出,从而有效地将输入流转为输出流。
  5. Kafka Connect API 用于构建和运行可重复使用的数据导入导出连接器。Kafka 社区已经提供了数百个现成可用的连接器。
  6. 相比传统的消息系统,Kafka 具有更好的吞吐量、内置分区、复制和容错能力。
  7. Kafka 日志、数据压缩机制。

Kafka 相关命令

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐