集成

什么是 Apache Kafka?

Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。它旨在处理多种来源的数据流,并将它们交付到多个消费者。简而言之,它可以移动大量数据,不仅是从 A 点移到 B 点,而是能从 A 到 Z 的多个点移到任何您想要的位置,并且可以同时进行。

Apache Kafka 可以取代传统的企业级消息传递系统。它最初是 Linkedin 为处理每天 1.4 万亿条消息而开发的一个内部系统,现已成为应用于各式各样企业需求的开源数据流处理解决方案。


与 Apache Kafka 异步集成

微服务的出现,改变了开发的格局。它们通过减少共享数据库层等依赖项,提升了开发人员的敏捷性。不过,开发人员构建的分布式应用仍然需要借助某种类型的集成来共享数据。同步方法是其中一种常见的集成方案,利用应用编程接口(API)在不同的用户之间共享数据。

另一种集成方案是异步方法,要在中间存储中复制数据。这就要靠 Apache Kafka 了,它会流处理其他开发团队的数据并填充到数据存储中,让数据在多个团队及其应用之间实现共享。

与传统的瀑布式开发团队相比,微服务团队有不同的集成要求。这些团队需要 3 个基本功能:

  1. 分布式集成:基于模式的轻量型集成,可以在需要时持续部署,并且不受限于集中式的 ESB 型部署。
  2. API:基于 API 的服务可以打造一个由合作伙伴、客户和开发人员组成的生态系统,从而安全可靠地善用各项服务。
  3. 容器:用于开发、管理和扩展云原生及互联应用的平台。容器可以用于开发可单独部署的精简构件,它们不仅是 DevOps 流程的一部分,还能够通过现成的集群方案,确保高可用性。

红帽称这种方法为“敏捷集成”,它将集成融入了应用开发流程,有助于打造敏捷性和适应性都更强的解决方案。借助敏捷集成,您能根据应用的具体需求,自由选择同步或异步集成。Apache Kafka 能够帮助您用异步事件驱动的集成来增强对同步集成和 API 的利用,从而进一步支持微服务,实现敏捷集成。因此,Apache Kafka 是开发流程简化计划的重要部分,有利于推动创新并节省时间,加快实现新功能、应用和服务创收。


何时该使用 Apache Kafka

Apache Kafka 内置于在系统和/或应用之间共享数据的数据流管道中,也内置于消耗这些数据的系统和应用中。Apache Kafka 可以用于许多注重高吞吐量和可扩展性的用例。在某些应用中,Apache Kafka 能够尽可能减少数据共享的点对点集成需求,因而能将延迟性缩短到用毫秒计量。这意味着,用户可以更快地获得数据,在 IT 运维和电子商务等需要实时数据可用性的用例中,这是一个不小的优势。

Apache Kafka 每秒可以处理数百万个数据点,是应对大数据挑战的理想方案。此外,即便是暂时无需处理这种海量数据的公司,也能用得上 Kafka。在许多数据处理用例中(如物联网(IoT)和社交媒体),数据不断成倍增长,或许很快就会让针对当前数据容量构建的应用不堪重负。在数据处理方面,您必须要充分考虑可扩展性;也就是说,要为数据的不断激增做好规划。

IT 运维

IT 运维离不开数据。IT 运维需要访问数据,而且要快。惟有如此,网站、应用和系统才能保持正常、稳定的运行。Apache Kafka 非常适合 IT 运维部门从众多数据源(如监控、变更和报告)收集数据、进行日志管理和网站跟踪活动。

物联网

根据 Gartner 的资料,物联网设备数量有望在 2020 年突破 200 亿。如此海量的装置所产生的可操作数据,就是物联网的价值所在。Apache Kafka 的可扩展设计思路,就能从容处理物联网所生成的海量数据。

电子商务

Apache Kafka 在电子商务中的运用机会越来越多,它能处理页面点击、点赞、搜索、订单、购物车和库存等数据。


Kubernetes 如何扩展 Apache Kafka 应用

Kubernetes 是 Apache Kafka 的理想平台。开发人员需要一个可扩展平台来托管 Kafka 应用,而 Kubernetes 正是绝佳的解决方案。

如同 Apache Kafka 一样,Kubernetes 也能让您的开发流程变得更加敏捷。Kubernetes(Google 云服务背后的技术)是用于管理容器化应用的开源系统,可以消除与容器相关的许多手动流程。在 Kubernetes 中使用 Apache Kafka 可以简化部署、配置和管理,以及对 Apache Kafka 的利用。

通过结合使用 Kafka 和 Kubernetes,您不仅能获得 Kafka 的所有优点,也能享受到 Kubernetes 的诸多益处,如可扩展性、高可用性、可移植性和易部署性。

Kubernetes 的可扩展性与 Kafka 可谓是相辅相成的天然盟友。在 Kubernetes 中,您可以通过简单的命令来扩展和缩减资源,或者按照所需的使用量进行自动扩展,从而充分地利用您的计算、网络和存储基础架构。这种能力让 Apache Kafka 得以与其他应用共享有限的资源池。Kubernetes 也使得 Apache Kafka 能够在不同的基础架构提供商和操作系统之间进行移植。借助 Kubernetes,Apache Kafka 集群可以跨现场和公共、私有或混合云部署,并且使用不同的操作系统。

携手红帽,深度集成

红帽可为您提供模块化、轻量级且全面的集成解决方案,这些方案采用开源技术、符合开放标准,并可在本地或云端实施。

消息传递

作为红帽® AMQ 的一部分,AMQ 数据流在红帽 OpenShift® 容器平台中提供 Apache Kafka。AMQ 流是一种基于在 Kubernetes 中运行的 Apache Kafka 项目的可扩展、分布式的高性能数据流功能。

容器平台

通过容器平台,利用容器来开发、部署、管理和扩展云原生应用。OpenShift 可以自动编排所有这些应用,并与 Fuse 和 3scale API 管理等产品协同工作,构建适用于云端的敏捷集成方案。

与红帽一起探讨集成技术