数仓中通常会用到 Kafka,大数据开发的面试中,面试经常会问 Kafka 相关的原理。今天先从官网的介绍来了解 Kafka。
1.简介
Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
Apache Kafka 是一个开源分布式事件流平台,作为高性能的数据管道、流分析、数据集成和关键任务应用程序,被数千家公司。
2.CORE CAPABILITIES 核心能力
HIGH THROUGHPUT
Deliver messages at network limited throughput using a cluster of machines with latencies as low as 2ms.
高吞吐量:使用机器集群以网络限制的吞吐量传递消息,延迟低至 2 毫秒。
SCALABLE
Scale production clusters up to a thousand brokers, trillions of messages per day, petabytes of data, hundreds of thousands of partitions. Elastically expand and contract storage and processing.
可扩展:将生产集群扩展到一千个 broker 、每天数万亿条消息、PB 级数据、数十万个分区。能够弹性扩展、压缩存储和处理。
PERMANENT STORAGE
Store streams of data safely in a distributed, durable, fault-tolerant cluster.
永久存储:将数据流安全地存储在分布式、持久、容错的集群中。
HIGH AVAILABILITY
Stretch clusters efficiently over availability zones or connect separate clusters across geographic regions.
高可用性:在可用区域上有效地扩展集群或跨地理区域连接单独的集群。
3.ECOSYSTEM 生态
BUILT-IN STREAM PROCESSING
Process streams of events with joins, aggregations, filters, transformations, and more, using event-time and exactly-once processing.
内置流处理:使用事件时间和精确一次处理,通过连接、聚合、过滤器、转换等处理事件流。
CONNECT TO ALMOST ANYTHING
Kafka’s out-of-the-box Connect interface integrates with hundreds of event sources and event sinks including Postgres, JMS, Elasticsearch, AWS S3, and more.
几乎任意连接:Kafka 开箱即用的 Connect 接口集成了数百个 source 和 sink ,包括 Postgres、JMS、Elasticsearch、AWS S3 等。
CLIENT LIBRARIES
Read, write, and process streams of events in a vast array of programming languages.
客户端库:可以使用各种编程语言读取、写入和处理事件流。
LARGE ECOSYSTEM OPEN SOURCE TOOLS
Leverage a vast array of community-driven tooling.
大型生态系统开源工具:利用大量社区驱动的工具。
4.TRUST & EASE OF USE 信任和易用性
MISSION CRITICAL
Support mission-critical use cases with guaranteed ordering, zero message loss, and efficient exactly-once processing.
关键任务:通过保证排序、零消息丢失和高效精确一次性处理来支持重要任务。
TRUSTED BY THOUSANDS OF ORGS
Thousands of organizations use Kafka, from internet giants to car manufacturers to stock exchanges. More than 5 million unique lifetime downloads.
受到数千个组织的信任:从互联网巨头到汽车制造商再到证券交易所,成千上万的组织都在使用 Kafka。超过 500 万次独特的终身下载。
VAST USER COMMUNITY
Kafka is one of the five most active projects of the Apache Software Foundation, with hundreds of meetups around the world.
庞大的用户社区:Kafka 是 Apache 软件基金会五个最活跃的项目之一,在世界各地有数百场聚会。
RICH ONLINE RESOURCES
Rich documentation, online training, guided tutorials, videos, sample projects, Stack Overflow, etc.
丰富的在线资源:丰富的文档、在线培训、指导教程、视频、示例项目、Stack Overflow 等。
5.总结
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue)。发布/订阅模式是一对多,消费者消费数据之后不会清除消息。
使用消息队列的好处:
- 解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
- 可恢复性:系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。
- 缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。
- 灵活性 & 峰值处理能力:在访问量剧增的情况下,仍然要求应用继续正常运行。但突发流量并不常见,如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。
- 异步通信:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。
欢迎关注,每天更新大数据面经和技术。