kafka学习

kafka

​ Kafka 是一个分布式的基于发布/订阅模式的消息队列。具有高性能、持久化、多副本备份、横向扩展能力,主要应用场景是:日志收集系统和消息系统。

kafka的特性:
  1. 同时为发布和订阅提供高吞吐量。
  2. 可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费,
  3. 分布式系统,易于向外扩展。所有的 Producer、Broker 和Consumer 都会有多个,均为分布式的。并且,无需停机即可扩展机器。
  4. 消息被处理的状态是在 Consumer 端维护,而不是由 Broker 端维护。当失败时,能自动平衡。
  5. 同时支持离线数据处理和实时数据处理。
消息队列的模式
  • 点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)

    生产者生产消息发送到Queue中,然后消息消费者从Queue中去除并且消费消息,消息被消费者消费后,Queue中不在存储,所以消费者不可能消费已经被消费到的消息,Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费

在这里插入图片描述

  • 发布/订阅模式(一对多,消费者消费数据之后不会清除消息)

    生产者将消息发布到topic中,同事有多个消息消费者消费该消息,和点对点方式不同,发布到topic的消息会 被所有订阅者消费

在这里插入图片描述

kafka结构及概念

在这里插入图片描述

​ kafka的大体结构可以分为,消息生产者producerkafka集群Broker cluster消息消费者consumerzookeeper集群

概念:

  1. producer:消息生产者,向kafka broker发送消息
  2. consumer:消息消费者,从kafka broker取消息
  3. consumer group;消息消费者组,有多个consumer组成,消息消费者组内每个消费者负责消费不同的分区数据,一个组内的消费者消费一个分区,消费者组之间互不影响。消费者组是逻辑上的一个订阅者
  4. broker :一台kafka服务器就是一个broker,一个集群由多个broker组成,broker存储着topic的数据,每个broker只存储着topic的一个partition,
  5. topic:主题,每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处
  6. partition: 分区,topic中的数据分为一个或者多个partition,每个top至少有一个partition,每个partition中的数据使用多个segment,每个 partition 是一个有序的队列,不同partition间的数据丢失了数据的顺序。如果topic有多个partition,消费数据时就不能保证数据的顺序
  7. replica: 副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且 kafka 仍然能够继续工作,kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,
  8. leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 leader。
  9. foll
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值