【Kafka】Kafka概述

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 【Kafka】Kafka概述,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、闲话

这是2023年的第一篇博客,祝大家在新的一年里一帆风顺,身体健康

二、基本要点

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

2、消息队列的好处
在这里插入图片描述

  • 解耦:利用消息队列,可以将相应的消息发送到消息队列,这样的话,如果调用的接口出了问题,将不会影响到当前的功能
  • 流量削峰:高流量的时候,使用消息队列作为中间件可以将流量的高峰保存在消息队列中,从而防止了系统的高请求,减轻服务器的请求处理压力
  • 异步处理:不需要让流程走完就返回结果,可以将消息发送到消息队列中,然后返回结果,剩下让其他业务处理接口从消息队列中拉取消费处理即可,减少了客户的等待时间

3、消息队列的两种模式

  • 点对点(一对一模式,消费者主动拉取消息,收到消息后清除消息)
    生产者生产消息发送到队列Queue中,然后消费者从Queue中取出消息并消费,消息被消费后,Queue不再存储此消息。一条消息只能被一个消费者消费
    在这里插入图片描述

  • 发布/订阅模式(一对多模式,消费者消费消息后不会清除消息)
    消息生产者将消息发布到topic中,同时有多个消息订阅者来消费该消息。与点对点模式不同的是,发布到topic的消息可以被所有消费者消费
    此模式的消息消费有2种场景:一种是队列推送消息给消费者,另外一种是消费者主动去拉取(Kafka属于后者,此模式的优势在于可以由消费者自己去决定消息消费的速度,但是消费者要一直维持一个消息轮询任务,确认是否有新消息推送)
    在这里插入图片描述

4、Kafka的基本架构
在这里插入图片描述

  • Producer:消息生产者,向Kafka中发布消息的角色
  • Consumer:消息消费者,即从Kafka中拉取消息消费的客户端
  • Broker:就是一台Kafka服务器,集群由多个broker组成,一个Broker可以容纳多个Topic
  • Topic:主题,可以理解为一个队列,生产者和消费者进行消息传递都是面向同一个Topic
  • Partition:分区,为了实现扩展性,一个非常大的Topic可以分布到多个Broker上,一个Topic可以分为多个Partition,每个Partition是一个有序的队列(分区有序,不能保证全局有序)
  • Consumer Group:消费者组,一个消费者组中可以存在多个消费者,消费者消费Broker中当前Topic的不同分区中的消息,消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。某一个分区中的消息只能够一个消费者组中的一个消费者所消费
  • Replica:副本Replication,为保证集群中某个节点发生故障,节点上的Partition数据不丢失,Kafka可以正常的工作,Kafka提供了副本机制,一个Topic的每个分区有若干个副本,一个Leader和多个Follower(可以结合前面redis的集群进行理解)
  • Leader:每个分区多个副本的主角色,生产者发送数据的对象,以及消费者消费数据的对象都是Leader
  • Follower:每个分区多个副本的从角色,实时的从Leader中同步数据,保持和Leader数据的同步,Leader发生故障的时候,某个Follower会成为新的Leader
  • Zookeeper的作用
    • 存储Kafka集群的信息,当作注册中心使用
    • 存储消费者消费到的位置信息,即offset偏移量(0.9版本之前存在zk上,后面的版本都存在Kafka上)

如有错误,欢迎指正!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136728.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!