Kafka Stream 简介

Kafka stream

Kafka Stream Java API 可以用来构建高可扩展、弹性、容错的分布式应用和微服务。首先,Kafka Stream API 允许你创建一个实时的核心业务。它是最简单最强大的处理存储在Kafka中数据。基于流处理的基本概念建立,例如,应用状态管理,快速有效的聚合和连接,正确区分事件时间和处理时间,无缝处理迟到数据和无序数据。

Kafka Stream API 独特功能是使用普通的Java程序就可以构建流处理应用。这些应用可以像其他Java应用一样打包、部署、监控。不需要单独安装处理集群或者类似的专用且昂贵的基础架构。

使用场景
  • 旅游公司可以通过建立实时决策,为个人用户找到最适合的价格,交叉其他服务,处理预订等。
  • 金融行业可以通过建立应用,聚合数据展示潜在风险,侦查和减少欺诈交易。
  • 后勤公司可以构建应用,快速可靠处理货物。
  • 零售商可以构建应用程序,以实时决定下一个最佳报价,个性化促销,价格和库存管理。
  • 汽车和制造公司可以构建应用程序,以确保其生产线性能最佳,实时了解其供应链,并监视来自联网汽车的遥测数据,以确定是否需要检查
近距离观察

在了解架构概念、快速上手之前,我们先近距离看看 Kafka Stream。

Kafka Streams API 的主要目的是将流处理从大数据细分市场带入主流应用程序开发领域,通过简单容易的流处理从根本上提高开发操作有经验。使用Kafka Stream API,可以使用标准的Java应用解决流处理的需求,无论是大规模还是小规模,都可以在Kafka集群的客户端机器上运行这些应用。弹性:可以运行单个或多个实例应用,它们会自动发现、共同处理数据。容错:如果一个实例挂掉,其他实例会接管它的任务,保证数据不丢失。部署方面,可以选择任意部署Java应用的任何技术,包括不限于Puppet, Chef, Ansible, Docker, Mesos, YARN, Kubernetes 等等。Kafka Stream API 轻量和友好的集成,「构建应用而不是框架」,与其他流处理工具形成了鲜明的对比,其他流处理工具要求安装和操作额外的处理集群以及重量级基础架构,并且需要遵守一定的集成规则。

下面列举了 Kafka Stream API 的几个重要功能,使其成为微服务、事件驱动、响应式应用、持续查询和转换等场景主要选择。

强大:

  • 让你的应用高扩展、弹性、分布式、容错
  • 支持 exactly-once 处理语义
  • 有状态和无状态处理
  • 窗口、连接、聚合等事件时间处理
  • 支持 Kafka Stream 交互查询
  • 多种表达方式API,灵活可控。声明式API、方法式API、命令式API

轻量:

  • 低门槛
  • 大中小型场景下均可使用
  • 平滑迁移从本地开发到大规模生产
  • 不需要处理框架
  • 不需要除Kafka额外的依赖

全面集成:

  • 100%兼容Kafka 0.10 和 1.0.0
  • 简便集成到已存在的应用和微服务
  • 没有打包部署监控等个人规则
  • 在任何地方运行:本地、公有云、私有云、容器等
  • 通过Kafka connect集成数据库

实时:

  • 毫秒级延迟
  • 一次记录处理(不是微批次)
  • 无缝处理无序和延迟数据
  • 高吞吐

总的来说,Kafka Stream API 是构建重大实时处理应用或微服务很棒的选择。

发布于 2020-07-20 22:07