kafka的介绍和概念

一.引言

在基于AMQP协议学习了rabbitmq的设计、实现和使用后,刚好在基于filebeat、kafka和logstash实现了日志采集,便准备深入了解下kafka的一些概念、设计、实现和使用,主要是据kafka官方文档作学习记录。

二.简介

a.事件流

事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的实践;持久存储这些时间以供以后检索;实时回顾性地操纵、处理和响应时间流;并根据需要将时间路由到不同的目标技术。因此,时间可确保数据的连续流动性和解释,从而使正确的信息在正确的时间出现在正确的位置。

b.事件流的应用场景

  • 实时处理支付和金融交易
  • 实时跟踪和监控车辆、物流信息
  • 持续捕获和分析来自物联网设备或其他嘎设备的传感器数据
  • 收集客户互动和订单并立即做出反应
  • 检测祝愿患者并预测病情变化
  • 连接、存储和提供不同部门生成的数据
  • 作为数据平台、事件驱动架构和微服务的基础

c.kafka是一个事件流平台

kafka结合了三个关键功能,因此可以作为一个经久考验的解决方案实现端到端事件流的实现:

  • 发布和定语事件流,包括从其他系统持续导入、导出数据
  • 持久可靠地存储事件流
  • 在事件发生时或回顾性地处理事件流

所有这些功能都是以分布式、高可拓展、弹性、容错和安全的方式提供的。

d.kafka是怎么工作的?

kafaka是一个分布式系统,由通过高性能TCP网络协议进行通信的服务器和客户端组成。它可以部署在本地和云环境中的裸机硬件、虚拟机和容器上。

  • 服务器:kafka作为一个或多个服务器集群运行,可以跨越多个数据中心或云区域。其中一些服务器形成存储层,称为代理,其他服务器运行kafka connect以事件流的形式持续导入和导出数据,以将kafka与现有系统集成。kafka集群具有高度可拓展性:如果其中任何一台服务器发生故障,其他服务器将接管它们的工作以确保连续运行而不会丢失数据。

  • 客户端:它们允许编写分布式应用程序和微服务,即使在出现网路问题或及其故障的情况下也能以容错的方式并行、大规模地读取、写入和处理事件流。包括可用于java和scala的客户端和更高级别的kafka stream库,和用于其他编程语言的rest api。

三.主要术语和概念

  • 事件记录了世界上或企业中发生了某事的实施,称为记录或消息,向kafka读取或写入数据时,您会以事件的形式执行此操作。事件具有键、值、时间戳和可选的元数据标头。
  • 生产者是那些向kafka发布事件的客户端应用程序
  • 消费者是那些订阅这些事件的客户端应用程序
  • 事件被组织并持久存储在主题中。一个主题可以有多个写入事件的生产者以及多个定义月者。主题中的事件可以根据需要随时读取–与传统的消息系统不同,事件在消费后不会被删除。相反可以通过每个主题中的配置定义kafka应该保留事件多长时间。之后旧事件将被丢弃,kafka的性能在数据大小方面是恒定的,因此长时间存储数据完全没有问题。
  • 主题是分区的,这意味着一个主题分布在位于不同kafka代理上的多个桶中。这种数据的分布式放置对于可伸缩性非常重要,因为它允许客户端应用程序同时从/向许多代理读取和写入数据。当一个新事件被发布到一个主题时,他被福建到主题的分区之一。具有相同事件键的事件将写入同一分区,并且kafka保证给定主题分区的任何消费者将始终以与写入事件完全相同的顺序读取该分区事件。
  • 为了使数据具有容错性和高可用性,恶意复制每个主题,甚至可以跨地理区域或数据中心,一百年始终有多个代理拥有数据副本以防万一出现问题。

四.API

  • admin api:管理和检查主题、代理和其他kafka对象
  • producer api:将事件流发布到一个或多个kafka对象
  • consumer api:订阅一个或多个主题并处理它们生成的事件流
  • kafka stream:实现流处理应用程序和微服务的kafka stream api.提供更高级别的功能来处理事件流,包括转换、聚合和连接等有状态操作、窗口化、基于事件事件的处理。从一个或多个主题读取出入以生成一个或多个主题的输出,有效地将输入流转换为输出流。
  • kafka connect api: 用于构件和运行可重复使用的数据导入/导出连接器,这些连接器使用或生成来自外部系统和应用程序的事件流,以便它们可以与kafka集成。例如,连接到关系数据库的连接起肯能会捕获对一组表的每个更改。

后续会继续完成kafka的一些设计理念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值