Loading

kafka.md

Kafka

介绍

  • 事件流(Event Streaming):从技术上讲,事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的做法;持久地存储这些事件流以供以后检索;实时地以及回顾性地操纵、处理和响应事件流;以及根据需要将事件流路由到不同的目的地技术。因此,事件流确保了数据的连续流动和解释,从而使正确的信息在正确的时间、正确的地点出现。
  • Kafka是一个事件流平台,是分布式、高伸缩性、可容错与安全的,可以在裸平台虚拟机容器上运行,可以实现3种功能:
    1. 进行发布- 订阅事件流,同时可以持续性从其他系统进行数据的导入导出。
    2. 可靠存储事件流
    3. 可以回溯和实时处理事件流
  • Kafka是分布式系统,由服务端与客户端组成,两者提供高性能TCP协议通讯。
    • Servers:由一组服务器集群组成。部分服务组成存储层,被称为brokers,其它服务运行Kafka Connect。如果一个五服务故障,其他服务将接管任务,以确保连续运行同时不丢失数据。
    • Clients:它们允许您编写分布式应用程序和微服务,即使在网络问题或机器故障的情况下,也可以并行、大规模、容错地读取、写入和处理事件流。
  • 术语:
    • Event:表示你的业务发生了什么。即读取或写入的数据。由keyvaluetimestamp等其它属性组成。
    • Producers是事件的发布者(写入事件),consumers是事件的消费者(读取事件)。生产者与消费者完全解耦且互不感知。生成者无需等待消费者消耗。
    • Topics:Events被组织和持久存储在topic中。如果Topic类比为文件夹,则event就是文件夹里的文件。在event被消费后不会删除,可以由自己指定多长有效时间。数据大小不会影响Kafka的性能。
    • Partition:Topic是分区的,即一个topic分散在不同的Kafka brokers上,这就允许客户端同时对数据进行读取或写入。一个event实际最终被写到一个patition内,有相同keyevent会被写到相同的partition。给定主题分区的任何使用者都将始终以与写入时完全相同的顺序读取该分区的事件。
    • 每个topic都有副本,这些副本存在于多个brokers,配置参数factor决定副本数量。
  • Core API
    1. Admin API:管理和检查主题、代理和其他Kafka对象。
    2. Producer API:发布(写入)事件流。
    3. Consumer API:订阅(读取)事件流。
    4. Kafka Streams API:采样流处理应用程序和微服务。
    5. Kafka Connect API:构建并运行可重复使用的数据导入/导出连接器,这些连接器从外部系统和应用程序消耗(读取)或生成(写入)事件流,以便与Kafka集成。
posted @ 2024-02-02 16:01  nsfoxer  阅读(7)  评论(0编辑  收藏  举报