首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CDP中的Kafka概览

Apache Kafka是一个高性能、高可用性、冗余的流消息平台。

Kafka简介

Kafka的功能很像发布/订阅消息系统,但具有更高的吞吐量、内置分区、复制和容错能力。对于大规模消息处理应用程序来说,Kafka是一个很好的解决方案。它通常与Apache Hadoop和Spark Streaming一起使用。

您可能会将日志视为按时间排序的文件或数据表。随着时间的推移,较新的条目将从左到右追加到日志中。日志条目号可以方便地替换时间戳。

Kafka将这种独特的抽象与传统的发布/订阅消息传递概念(例如生产者、消费者和经纪人),并行性和企业功能集成在一起,以提高性能和容错能力。

Kafka最初的用例是跟踪网站上的用户行为。网站活动(页面浏览、搜索或用户可能执行的其他操作)被发布到中心主题,每种活动类型一个主题。

Kafka可用于监视操作数据、聚合来自分布式应用程序的统计信息以生成集中的数据馈送。它还适用于日志聚合,具有低延迟和很方便支持多个数据源。

Kafka提供以下内容:

具有O(1)磁盘结构的持久消息传递,这意味着Kafka算法的执行时间与输入的大小无关。执行时间是恒定的,即使存储了数TB的消息也是如此。

高吞吐量,即使使用适度的硬件,也可以每秒支持数十万条消息。

明确支持通过Kafka服务器对消息进行分区。它在消耗器集群上分配消耗量,同时保持消息流的顺序。

支持将并行数据加载到Hadoop。

kafka架构

了解Kafka的架构及其与理想的发布-订阅系统的比较。

理想的发布-订阅系统很简单:发布者A的消息必须到达订阅者A,发布者B的消息必须到达订阅者B,依此类推。

图1.理想的发布-订阅系统

理想的系统具有以下优点:

无限回溯。新的订户A1可以在任何时间点读取发布者A的流。

消息保留。没有消息丢失。

无限的存储空间。发布-订阅系统具有无限制的消息存储。

无停机时间。发布-订阅系统永远不会崩溃。

无限扩展。发布-订阅系统可以以恒定的消息传递延迟来处理任意数量的发布者和/或订阅者。

但是,Kafka的体系结构偏离了此理想系统。一些主要区别是:

消息传递是在复制的分布式提交日志之上实现的。

客户端具有更多功能,因此,责任更大。

消息传递针对批处理而不是单个消息进行了优化。

消息即使被消耗也将保留;它们可以再次被使用。

这些设计决策的结果是:

极高的水平可扩展性

吞吐量极高

高可用性

不同的语义和消息传递保证

kafka术语

当涉及到基本构建模块和关键概念时,Kafka使用自己的术语。这些术语的用法可能与其他技术有所不同。以下提供了Kafka最重要概念的列表和定义:

代理(Broker):代理是一台服务器,用于存储发送到主题的消息并服务于消费者请求。

主题(topic):主题是由一个或多个生产者编写并由一个或多个消费者阅读的消息队列。

生产者(producer):生产者是将记录发送到Kafka主题的外部过程。

消费者(consumer):消费者是一个外部进程,它从Kafka集群接收主题流。

客户端(client):客户端是指生产者和消费者的术语。

记录(record):记录是发布-订阅消息。记录由键/值对和包含时间戳的元数据组成。

分区(Partition):Kafka将记录分为多个分区。可以将分区视为某个主题的所有记录的子集。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201201A06MOT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券