通过卡夫卡的快速入门https://www.cnblogs.com/tree1123/p/11150927.html
能了解到卡夫卡的基本部署,使用,但他和其他的消息中间件有什么不同呢?
卡夫卡的基本原理,术语,版本等等都是怎么样的?到底什么是卡夫卡呢?
一、卡夫卡简介
http://kafka.apache.org/intro
2011年,“开源,11月1日2017 1.0版本发布7月30日,2018年2.0版本发布
参考官网的图:
卡夫卡?用于构建实时数据管道和流式应用程序。它具有水平可扩展性,容错性,速度极快,并在数千家公司投入生产。
卡夫卡官网最新的定义:Apache卡夫卡?分布式流媒体平台是
也就是分布式流式平台。
介绍:
三个特点:
-
<李>发布和订阅流记录,类似于一个消息队列或企业消息传递系统。李>
<李>流的记录存储在一个容错耐用。李>
<李>过程流发生时的记录。李>
消息持久化流处理
两类应用:
-
<李>
建筑之间可靠地获取数据的实时流数据管道系统或应用程序
李> <李>构建实时流媒体应用程序变换或反应的数据流
实时流数据管道实时流应用程序
?
几个概念
-
<李>
卡夫卡作为集群运行alt="什么是卡夫卡? ">
客户端服务器通过tcp协议支持多种语言
主题和日志
一个主题可以有零个、一个或多个消费者订阅写入它的数据
对于每个主题,卡夫卡群集都维护一个分区日志
每个分区都是一个有序的,不可变的记录序列,不断附加到结构化的提交日志中。
分区中的记录每个都被分配一个称为偏移的顺序ID号,它唯一地标识分区中的每个记录。
卡夫卡集群持久地保留所有已发布的记录,无论它们是否已被消耗,使用可配置的保留期。可以配置这个时间。
卡夫卡的性能在数据大小方面实际上是恒定的,因此长时间存储数据不是问题。
每个消费者保留的唯一元数据是该消费者在日志中的偏移或位置。
这种偏移由消费者控制:通常消费者在读取记录时会线性地提高其偏移量,但事实上,由于消费者控制位置,它可以按照自己喜欢的任何顺序消费记录。例如,消费者可以重置为较旧的偏移量以重新处理过去的数据,或者跳到最近的记录并从“现”在开始消费。
这使得消费者特别容易使用。
生产者:
生产者将数据发布到他们选择的主题。
为了负载均衡,可以选择多个分区。
消费者:
消费者组
传统的消息队列发布订阅都有弊端
队列可以扩展但不是多用户,发布订阅每条消费发给每个消费者,无法扩展。
但是卡夫卡这个模式解决了这些问题
卡夫卡确保使用者是该分区的唯一读者并按顺序使用数据,由于有许多分区,这仍然可以
平衡许多消费者实例的负载。
作为存储系统
作为流处理系统
二,常见使用
http://kafka.apache.org/uses
消息h5>
卡夫卡可以替代更传统的消息代理。消息代理的使用有多种原因(将处理与数据生成器分离,缓冲未处理的消息等)。与大多数消息传递系统相比,卡夫卡具有更好的吞吐量,内置分区,复制和容错功能,这使其成为大规模消息处理应用程序的理想解决方案。
根据我们的经验,消息传递的使用通常相对较低,但可能需要较低的端到端延迟,并且通常取决于卡夫卡提供的强大的耐用性保证。
在这个领域,卡夫卡可与传统的消息传递系统(如ActiveMQ或RabbitMQ)相媲美。
网站活动跟踪h5>
站点活动(页面查看,搜索或用户可能采取的其他操作)发布到中心主题,每个活动类型包含一个主题。实时处理,实时监控以及加载到Hadoop或离线数据仓库系统以进行离线处理和报告。