kafka基本原理,kafka史上原理最详解

  kafka基本原理,kafka史上原理最详解

  卡夫卡是主流的消息流体系,里面还有很多概念。在这里,我们将通过图解的方式对卡夫卡的核心概念进行梳理,从而在头脑中有一个清晰的认识。

  01基础Kafka是一套流处理系统(也叫消息队列),允许后端服务之间轻松通信。它是微服务架构中的常见组件。

  02生产者消费者生产者服务生产者向卡夫卡发送消息,消费者服务消费者监控卡夫卡接收消息。

  服务既可以是生产者,也可以是消费者。

  0Topics主题是生产者发送消息的目标地址,也是消费者的监控目标。

  一个服务可以监听和发送多个主题。

  卡夫卡有一个[消费群体]的概念。

  这是一组服务,充当消费者。

  如果一个消费群体收到一条消息,Kafka会将消息路由到该群体中的一个服务。

  这有助于平衡消息负载并扩大消费者。

  主题充当消息队列。首先,发送了一个消息。

  然后,该消息被记录并存储在该队列中,并且不允许被修改。

  接下来,消息将被发送给该主题的消费者。

  但是,此消息不会被删除,将保留在队列中。

  继续发消息。

  和以前一样,这条信息将被发送给消费者,并且不会被更改。它将停留在队列中(消息可以在队列中停留多长时间取决于Kafka的配置)。

  0分区在上面对主题的描述中,主题被视为一个队列。实际上,一个主题是由多个队列组成的,称为[分区]。

  这样可以方便话题的展开。

  当生成器发送消息时,该消息将被路由到本主题中的一个分区。

  消费者监听所有分区,消费每个人的事件。

  发送生产者消息时,默认是面向主题的,哪个分区由主题决定,默认使用轮询策略。

  您还可以配置Topic,以便相同类型的所有消息都在同一个分区中。

  例如,在处理用户消息时,某个用户的所有消息可以在一个分区中。

  例如,用户1发送了三条消息:A、B和c。默认情况下,这三条消息位于不同的分区(如P1、P2和P3)。

  配置后,可以保证用户1的所有消息都发送到同一个分区(如P1)。

  这个功能有什么用?这是为了提供消息的[有序性]。

  不同分区中的邮件不能排序,只能排序一个分区中的邮件。

  05架构卡夫卡是集群架构,ZooKeeper是其中的重要组成部分。

  ZooKeeper管理所有主题和分区。

  主题和分区存储在物理节点中,ZooKeeper负责维护这些节点。

  例如,有两个主题,每个主题有两个分区。

  这是逻辑形式,但是Kafka集群中的实际存储可能是这样的:

  主题A的分区#1有三个副本,分布在每个节点上。

  这可以增加Kafka的可靠性和系统灵活性。

  在3个分区#1中,ZooKeeper将指定一个领导者,负责接收来自生产者的消息。

  另外两个分区#1将充当跟随者,领导者收到的消息将被复制到跟随者。

  这样,每个分区都包含了完整的消息数据。

  即使一个节点出现故障,您也不必担心消息损坏。

  话题A和话题B的所有分区分布可能都是这样的:

  这样,你对卡夫卡的构成有了初步的了解。关于Kafka或者消息队列的更多信息,可以查阅相关资料。感谢您的阅读,希望对您有所帮助。

  版权归作者所有:原创作品来自博主、程序员二黑,转载请联系作者获得授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: