概述
Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。它旨在处理多种来源的数据流,并将它们交付给多个消费者。简而言之,它可以移动大量数据,不仅是从 A 点移到 B 点,而是能从 A 到 Z 的多个点移到任何您想要的位置,并且可以同时进行。
Apache Kafka 可以取代传统的企业级消息传递系统。它最初是 Linkedin 为处理每天 1.4 万亿条消息而开发的一个内部系统,现已成为应用于各式各样企业需求的开源数据流处理解决方案。
何时使用 Apache Kafka
Apache Kafka 内建到在系统和/或应用之间共享数据的数据流管道中,也内置到消耗这些数据的系统和应用中。Apache Kafka 支持注重高吞吐量和可扩展性的广泛用例。Apache Kafka 能够在特定应用中最大程度减少数据共享的点对点整合需求,因而能将延迟性缩短到用毫秒计量。这意味着,数据可以更快地提供给用户使用,在 IT 运维和电子商务等需要实时数据可用性的用例中,这可以成为一个优势。
Apache Kafka 每秒可以处理数百万个数据点,是大数据挑战的理想方案。但是,Kafka 也适用于暂时无需处理此类极端数据量的公司。在许多数据处理用例中,如物联网(IoT)和社交媒体,数据呈指数级增长,或许很快就会让按照当今数据容量构建的应用不堪重负。在数据处理方面,您必须要考虑可扩展性;也就是说,要为数据的不断激增做好规划。
IT 运维
IT 运维离不开数据。IT 运维需要访问数据,而且要快。惟有如此,网站、应用和系统才能保持正常运行,并维持高性能。对于依赖于从众多数据源(如监控、变更和报告)收集数据、日志管理和网站跟踪活动的 IT 运维功能而言,Apache Kafka 是理想选择。
物联网
根据 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 集群可以跨越现场和公共云、私有云或混合云,并且使用不同的操作系统。