大数据消息中间件之Kafka-01

大数据消息中间件之Kafka

此篇文章讲述大数据消息中间件Kafka入门及使用



前言

市面上的消息中间件有很多,人尽皆知的有RabbitMQ,RocketMQ,Kafka等等


提示:以下是本篇文章正文内容,下面案例可供参考

一、Kafka是什么?

1.1 Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。

二、消息队列

2.1消息队列的应用场景

在这里插入图片描述
由此可见同步处理的话会消耗更多的时间,异步处理会节省很多时间

2.2那么我们为什么使用消息队列呢?

  • 解耦:降低了我们程序和服务的耦合性,允许两边各自扩展修改,互不影响
  • 异步:有时候用户不需要马上就得到或处理消息,将消息放入到消息队列中,等需要的时候再来消费消息即可
  • 削峰:可以顶住高并发的压力

三、Kafka

3.1Kafka的两种模式

  • 点对点模式(一对一)

    生产者发送消息到队列中,唯一消费者进行消费,消费完之后队列将消息进行删除
    在这里插入图片描述

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

    消息生产者(发布)将消息发布到 topic 中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到 topic 中的消息会被所有订阅者消费。
    在这里插入图片描述

3.2 Kafka架构实现

在这里插入图片描述

名词解释
  • Producer:生产者,负责生产消息到消息队列中
  • Comsumer:负责从消息队列中取出消息并且消费消息
  • Consumer Group:消费者组,多个消费者组成,组内每个消费者负责消费不同分区的内容,一个分区只能由同一组的消费者消费,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • Topic:主题,相当于一个队列
  • Broker:相当于一个Kafka服务器
  • Leader:每个分区多个副本的 ”主“,生产者发送数据的对象,以及消费者消费数据时的对象都是 leader。
  • Follower:每个分区多个副本的 “从”,实时从 leader 中同步数据,保持和 leader 数据的同步。leader 发生故障时,某个 follower 会成为新的 leader。
  • Partiton:为了实现拓展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 Partition,每个 partition 都是一个有序的队列。
  • Replication:副本,为保证集群中某个节点发生故障时,该节点上的 partition 数据不丢失,且 Kafka 仍然可以继续工作,Kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,一个 leader 和若干个 follower。

3.3 Kafka工作流程

在这里插入图片描述
 Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。topic 是逻辑上的概念。而 partition 是物理上的概念,每个 partition 对应一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。producer 生产的数据会不断追加到该 log 文件末端,且每条数据都有自己的 offset(偏移量)。消费者组中每个消费者,都会实时记录自己消费到了哪个 offset,以便出错恢复时,从上次的位置继续消费。

3.4 Kafka 文件存储机制

在这里插入图片描述
由于生产者生产的消息不断追加到 log 文件末尾,为防止 log 文件过大导致数据定位效率低下,Kafka 采取了分片和索引机制,将每个 partition 分为多个 segment。每个 segment 对应两个文件,“.index” 文件和 “.log 文件”。这些文件位于一个文件夹下,该文件夹命名规则为:topic 名称 + 分区序号。例如,demo 这个 topic 有两个分区,则其对应的文件夹为 demo-0,demo-1。

总结

此篇文章介绍kafka,下一篇介绍kafka的生产者与消费者

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT二叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值