手机搜索和网站搜索的排名,audio for wordpress,公司线上推广,网页的构成文章来源#xff1a;https://kafka.cadn.net.cn
什么是事件流式处理#xff1f;
事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础#xff0c;在这个世界里#xff0c;企业越来越多地使用软件定义 和 automated#xff0c;而软件的用户更…文章来源https://kafka.cadn.net.cn
什么是事件流式处理
事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础在这个世界里企业越来越多地使用软件定义 和 automated而软件的用户更多的是 Software。
从技术上讲事件流式处理是从事件源实时捕获数据的做法 如数据库、传感器、移动设备、云服务和流形式的软件应用程序 事件;持久存储这些事件流以供以后检索;操作、处理和反应 实时和回顾性地访问事件流;并将事件流路由到不同的 destination 技术。因此事件流确保了 数据以便在正确的时间、正确的地点提供正确的信息。
事件流式处理可以用于什么
事件流适用于众多行业和组织的各种使用案例。它的许多示例包括
实时处理付款和金融交易例如在证券交易所、银行和保险中。实时跟踪和监控汽车、卡车、车队和货物例如物流和汽车行业。持续捕获和分析来自 IoT 设备或其他设备例如工厂和风电场的传感器数据。收集客户互动和订单并立即做出反应例如在零售、酒店和旅游行业以及移动应用程序中。监测住院护理的患者并预测病情变化以确保在紧急情况下得到及时治疗。连接、存储和提供公司不同部门生成的数据。作为数据平台、事件驱动型架构和微服务的基础。
Apache Kafka® 是一个事件流式处理平台。那是什么意思
Kafka 结合了三个关键功能因此您可以使用单个久经考验的解决方案实现端到端事件流的使用案例
发布写入和订阅读取事件流包括连续导入/导出 来自其他系统的数据。根据需要持久可靠地存储事件流。在事件发生时或回顾性地处理事件流。
所有这些功能都以分布式、高度可扩展、弹性、容错和 安全的方式。Kafka 可以部署在裸机硬件、虚拟机和容器上也可以部署在本地 以及在云中。您可以选择自行管理 Kafka 环境和使用完全托管式 由各种供应商提供的服务。
简而言之Kafka 是如何工作的
Kafka 是一个分布式系统由服务器和客户端组成这些服务器和客户端 通过高性能 TCP 网络协议进行通信。 它可以部署在本地和云中的裸机硬件、虚拟机和容器上 环境。
服务器Kafka 作为一个或多个服务器的集群运行这些服务器可以跨越多个数据中心 或云区域。其中一些服务器构成了存储层称为代理。其他服务器运行 Kafka Connect 以持续导入和导出 数据作为事件流以将 Kafka 与现有系统如关系数据库集成以及 其他 Kafka 集群。为了让您实施任务关键型使用案例Kafka 集群具有高度可扩展性 和容错如果它的任何服务器出现故障其他服务器将接管它们的工作以确保 连续运行不会丢失任何数据。
客户端它们允许您编写分布式应用程序和微服务这些应用程序和微服务可以读取、写入、 并行、大规模和以容错方式处理事件流即使在网络的情况下也是如此 问题或机器故障。Kafka 附带了一些这样的客户端这些客户端由 Kafka 提供的数十个客户端进行增强 社区客户端可用于 Java 和 Scala包括更高级别的 Kafka Streams 库、Go、Python、C/C 和 许多其他编程语言以及 REST API。
主要概念和术语
事件记录了世界上或您的企业中 “发生了什么” 的事实。在文档中也称为 record 或 message。当您向 Kafka 读取或写入数据时您以事件的形式执行此操作。从概念上讲事件具有键、值、时间戳和可选的元数据标头。下面是一个示例事件
事件键“Alice”事件价值“已向 Bob 支付 200 美元”事件时间戳“2020 年 6 月 25 日下午 206。
创建者是将事件发布写入到 Kafka 的客户端应用程序而使用者是订阅读取和处理这些事件的客户端应用程序。在 Kafka 中生产者和使用者完全解耦且彼此不可知这是实现 Kafka 众所周知的高可扩展性的关键设计元素。例如生产者永远不需要等待消费者。Kafka 提供各种保证例如能够精确处理一次事件。
事件被组织并持久存储在主题中。非常简单主题类似于文件系统中的文件夹事件是该文件夹中的文件。示例主题名称可以是 “payments”。Kafka 中的主题始终是多创建者和多订阅者一个主题可以有零个、一个或多个向其写入事件的创建者以及订阅这些事件的零个、一个或多个使用者。可以根据需要随时读取主题中的事件 - 与传统消息传递系统不同事件在使用后不会删除。相反您可以通过每个主题的配置设置定义 Kafka 应将事件保留多长时间之后将丢弃旧事件。Kafka 的性能在数据大小方面实际上是恒定的因此长时间存储数据是完全可以的。
主题是分区的这意味着主题分布在位于不同 Kafka 代理上的多个“存储桶”中。这种分布式数据放置对于可伸缩性非常重要因为它允许客户端应用程序同时从多个代理读取和写入数据。当新事件发布到主题时它实际上会附加到主题的某个分区中。具有相同事件键的事件例如客户或车辆 ID将写入同一分区Kafka 保证给定主题分区的任何使用者将始终以与写入事件完全相同的顺序读取该分区的事件。 图此示例主题有四个分区 P1–P4。两个不同的生产者客户端正在发布 通过网络将事件写入主题的 分区。具有相同键的事件由它们在图中的颜色表示将写入相同的 分区。请注意如果合适两个 producer 都可以写入同一个分区。
为了使您的数据具有容错性和高可用性每个主题都可以复制甚至可以跨地理区域或数据中心复制以便始终有多个代理拥有数据副本以防万一出现问题您想对代理进行维护等等。常见的生产设置是复制因子 3即数据始终有三个副本。此复制在 topic-partitions 级别执行。
这本引物应该足以作为介绍。如果您感兴趣文档的 Design 部分详细介绍了 Kafka 的各种概念。
Kafka API 接口
除了用于管理和管理任务的命令行工具外Kafka 还有五个适用于 Java 和 Scala 的核心 API
用于管理和检查主题、代理和其他 Kafka 对象的 Admin API。生产者 API用于将事件流发布写入到一个或多个 Kafka 主题。Consumer API用于订阅读取一个或多个主题并处理向它们生成的事件流。Kafka Streams API用于实施流处理应用程序和微服务。它提供更高级别的函数来处理事件流包括转换、有状态操作如聚合和联接、窗口化、基于事件时间的处理等。从一个或多个主题中读取输入以便生成对一个或多个主题的输出从而有效地将输入流转换为输出流。Kafka Connect API用于构建和运行可重用的数据导入/导出连接器这些连接器使用读取或生成写入来自外部系统和应用程序的事件流以便它们可以与 Kafka 集成。例如指向关系数据库如 PostgreSQL的连接器可能会捕获对一组表的每次更改。但是在实践中您通常不需要实施自己的连接器因为 Kafka 社区已经提供了数百个现成的连接器。
从这里去哪里
要获得 Kafka 的实践经验请遵循快速入门。要更详细地了解 Kafka请阅读文档。 您还可以选择 Kafka 书籍和学术论文。浏览用例了解我们全球社区中的其他用户如何从 Kafka 中获得价值。加入当地的 Kafka 聚会小组观看 Kafka 社区的主要会议 Kafka 峰会的演讲。
文章来源kafka -- 南京筱麦软件有限公司