这篇文章主要为大家展示了“CDP中的Kafka是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CDP中的Kafka是什么”这篇文章吧。
Apache Kafka是一个高性能、高可用性、冗余的流消息平台。
Kafka简介
Kafka的功能很像发布/订阅消息系统,但具有更高的吞吐量、内置分区、复制和容错能力。对于大规模消息处理应用程序来说,Kafka是一个很好的解决方案。它通常与Apache Hadoop和Spark Streaming一起使用。
您可能会将日志视为按时间排序的文件或数据表。随着时间的推移,较新的条目将从左到右追加到日志中。日志条目号可以方便地替换时间戳。
Kafka将这种独特的抽象与传统的发布/订阅消息传递概念(例如生产者、消费者和经纪人),并行性和企业功能集成在一起,以提高性能和容错能力。
Kafka最初的用例是跟踪网站上的用户行为。网站活动(页面浏览、搜索或用户可能执行的其他操作)被发布到中心主题,每种活动类型一个主题。
Kafka可用于监视操作数据、聚合来自分布式应用程序的统计信息以生成集中的数据馈送。它还适用于日志聚合,具有低延迟和很方便支持多个数据源。
Kafka提供以下内容:
具有O(1)磁盘结构的持久消息传递,这意味着Kafka算法的执行时间与输入的大小无关。执行时间是恒定的,即使存储了数TB的消息也是如此。
高吞吐量,即使使用适度的硬件,也可以每秒支持数十万条消息。
支持将并行数据加载到Hadoop。
kafka架构
了解Kafka的架构及其与理想的发布-订阅系统的比较。
理想的发布-订阅系统很简单:发布者A的消息必须到达订阅者A,发布者B的消息必须到达订阅者B,依此类推。
图1.理想的发布-订阅系统
理想的系统具有以下优点:
但是,Kafka的体系结构偏离了此理想系统。一些主要区别是:
消息传递是在复制的分布式提交日志之上实现的。
客户端具有更多功能,因此,责任更大。
消息传递针对批处理而不是单个消息进行了优化。
消息即使被消耗也将保留;它们可以再次被使用。
这些设计决策的结果是:
极高的水平可扩展性
吞吐量极高
高可用性
不同的语义和消息传递保证
kafka术语
当涉及到基本构建模块和关键概念时,Kafka使用自己的术语。这些术语的用法可能与其他技术有所不同。以下提供了Kafka最重要概念的列表和定义:
生产者(producer):生产者是将记录发送到Kafka主题的外部过程。
客户端(client):客户端是指生产者和消费者的术语。
记录(record):记录是发布-订阅消息。记录由键/值对和包含时间戳的元数据组成。
分区(Partition):Kafka将记录分为多个分区。可以将分区视为某个主题的所有记录的子集。
以上是“CDP中的Kafka是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程之家行业资讯频道!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。