Kafka 概述

news2024/9/27 19:17:55

文章目录

      • Kafka定义
      • 消息队列
        • 消息队列应用场景
          • 缓冲/消峰 场景
          • 解耦 场景
          • 异步通信 场景
        • 消息队列两种模式
          • 点对点模式
          • 发布/订阅模式 ***
      • kafka基础架构

Kafka定义

在这里插入图片描述

消息队列

目前企业中比较常见的消息队列产品主要有 Kafka、ActiveMQ 、RabbitMQ 、RocketMQ 等。在大数据场景主要采用 Kafka 作为消息队列。

消息队列应用场景

传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信。

缓冲/消峰 场景

缓冲/消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。
在这里插入图片描述

解耦 场景

解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
在这里插入图片描述

异步通信 场景

异步通信:允许用户把一个消息放入队列中,但并不立即处理它,然后在需要的时候再去处理它们。在了解异步通信之前,先了解同步处理逻辑。

在这里插入图片描述

消息队列两种模式

点对点模式
  • 消费者主动拉取数据,消息收到后清除消息.
    在这里插入图片描述
发布/订阅模式 ***
  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据
    在这里插入图片描述

kafka基础架构

在这里插入图片描述

Producer:消息生产者,就是向 Kafka broker 发消息的客户端。
Consumer:消息消费者,向 Kafka broker 获取消息的客户端。
Consumer Group(CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
Broker:一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。
Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。
Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。
Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower。
Leader:每个分区多个副本的“老大”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。
Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

附~
材料来源于B站《尚硅谷kafka教程》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/375972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

I.MX6ULL内核开发11:使用设备树实现RGB灯驱动

目录 一、实验说明 二、硬件原理图分析 2.1 打开原理图,找到rgb部分 2.2 对RGB的R灯进行寄存器设置 2.2.1 时钟配置 2.2.2 引脚复用GPIO 2.2.3 引脚属性设置 2.2.4 输出电平设置 三、实验代码 3.1 编程思路 3.2 代码分析 3.2.1 添加RGB设备节点 3.2.2 编…

openlayers加载离线地图并实现深色地图

问题背景 我们自己一直使用的openlayergeoserver自己发布的地图,使用的是矢量地图。但是由于政府地图大都使用为天地图,所以需要将geoserver的矢量地图更改为天地图,并且依旧是搭配openlayers来使用。 解决步骤 一:加载离线地图&a…

ubuntu20.04安装nginx一系列问题

当初做一个项目的时候给linux装nginx遇到了很多问题,当初边搞边记录,这两天翻看项目笔记的时候找出来了,就把这一部分分享出来给大家看看 ubuntu20.04 LTS 安装yum无法定位软件包 备份原来的软件源 sudo cp /etc/apt/sources.list /etc/ap…

目前软搭建测试的行业现状和前景

软件测试的发展前景和行业现状 1. 软件测试的工资情况 软件测试的方向:功能>>>接口>>>性能>>>自动化>>>测开>>>人生巅峰 功能测试:曾经互联网缺口和软件测试缺口非常大,因此功能测试越来越多。可是20…

Linux-编写一个自己的命令

前言(1)在Linux中,我们对文件路径进行操作都需要输入命令。那么,有人可能就会有疑惑了,命令是什么东西?我们是否也可以创造出自己的命令呢?答案是可以的。命令本身其实就是可执行文件。但是与普…

使用docker pull 跨系统架构拉取镜像

使用docker pull 跨系统架构拉取镜像使用docker pull 跨系统架构拉取镜像docker hub上找到相应的镜像在个人电脑中的执行拉取镜像命令:执行查看镜像命令:执行检查镜像命令:执行保存镜像命令:使用docker pull 跨系统架构拉取镜像 …

【C语言编译器】03 Linux GCC 初探

一、准备工作 简单介绍,马上出 GCC 系列。本文非常浅显。 Linux系统常用来用作服务器,其中最常用的发行版是CentOS、Ubuntu、Debian等。 尽管很多C语言IDE都有Linux版本,比如VS、CLion的Linux版。但作为服务器的Linux通常没有GUI界面&…

腾讯TIM实现即时通信 v3+ts实践

目录 初始化sdk 功能描述 初始化 准备 SDKAppID 调用初始化接口 监听事件 发送消息 创建消息 创建文本消息 登录登出 功能描述 登录 登出 销毁 登录设置 获取会话列表 功能描述 获取会话列表 获取全量的会话列表 历史消息 功能描述 拉取消息列表 分页拉取…

自动驾驶自主避障概况

文章目录前言1. 自主避障在自动驾驶系统架构中的位置2. 自主避障算法分类2.1 人工势场法(APF)2.1.1引力势场的构建2.1.2斥力势场的构建2.1.3人工势场法的改进2.2 TEB(Timed-Eastic-Band, 定时弹性带)2.3 栅格法2.4 向量场直方图(V…

Linux 之 大数据定制篇-shell 编程

文章目录1 为什么要学习 Shell 编程2 Shell 是什么?3 Shell 脚本的执行方式3.1 脚本格式要求3.2 编写第一个 Shell 脚本3.3 脚本的常用执行方式4 Shell 的变量4.1 Shell 变量介绍4.2 shell 变量的定义4.3 shell 变量的定义5 设置环境变量5.1 基本语法5.2 快速入门6 …

【AI绘画】秒级出图 快速生成大师级画作

最近闲来无事,在网上体验了一下各种AI绘画工具。 根据输入的描述语快速生成自己想要的图片,听着还是很不错的!想要啥图片就可以生成啥图片?于是,期待满满的搞起来了~ 可是真当体验了一下之后… 这生成的啥呢&#xf…

广泛运用在工业、轨道交通、监狱的ip对讲终端

ip网络对讲系统是不同于传统广播、调频寻址广播和数控广播的产品,它是基于IP数据网络,将音频信号经过数字编码以数据包形式按TCP\IP协议在局域网或广域网上传送,再由终端解码的纯数字化单向,双向及多向音频扩声系统。 本产品是新一…

多表left join 慢sql问题

作为个人记录,后续再填坑a对p是1对多 ,p对llup 1对多SELECTa.id,p.id,t1.id FROMliv_series_product aINNER JOIN liv_product p ON p.id a.product_idLEFT JOIN ( SELECT llup.id, llup.product_id, llup.room_id FROM liv_live_user_product llup WHERE llup.ro…

超声功率放大器原理(超声功率放大器的作用是什么)

超声功率放大器是电子实验室中比较常见的测量仪器,虽然很多工程师频繁使用,但是对于超声功率放大器的了解却不够。下面就让安泰电子来为大家科普超声功率放大器原理和作用的内容。超声功率放大器是什么:超声功率放大器是一种用于提高超声波能…

requests---(2)session简介与自动写博客

目录:导读 session简介 session登录 自动写博客 获取登录cookies 抓取写博客接口 requests自动写博客 写在最后 http协议是无状态的,也就是每个请求都是独立的。那么登录后的一系列动作,都需要用cookie来验证身份是否是登录状态&#…

C++将派生类赋值给基类(向上转型)

1.将派生类对象赋值给基类对象 #include <iostream> using namespace std;//基类 class A{ public:A(int a); public:void display(); public:int m_a; }; A::A(int a): m_a(a){ } void A::display(){cout<<"Class A: m_a"<<m_a<<endl; }//…

一文解读电压放大器(电压放大器原理)

关于电压放大器的科普知识&#xff0c;之前讲过很多&#xff0c;今天为大家汇总一篇文章来详细的讲解电压放大器&#xff0c;希望大家对于电压放大器能有更清晰的认识。电压放大器是什么&#xff1a;电压放大器是一种常用的电子器件&#xff0c;它的主要作用是把输入信号的振幅…

计算机网络-- 分类、体系结构(day03)

计算机网络的分类 计算机网络的性能指标 速率 数据块&#xff08;文件&#xff09;的大小单位是以2^10(1024)为一个级别递增。 例如&#xff1a; 1MB大小的文件&#xff0c;在网速为1Mbps发送的时间需要多少 文件大小的M是2进制来表示的&#xff0c;网速的M为10进制来表示的 …

zabbix4.0-自定义脚本钉钉告警

目录 1、自定义一个钉钉群组 2、自定义脚本告警 3、创建媒体类型 4、为用户指定媒介类型 5、更改触发器表达式进行测试 1、自定义一个钉钉群组 群组里面添加一个自定义机器人 会有一个webhook地址&#xff0c;这个地址要记住 安全设置暂时选择自定义关键词&#xff0c;定义…

第四阶段02-酷鲨商城项目Mybatis相关的配置

14. 添加与Mybatis相关的配置 在每个项目中&#xff0c;当需要使用Mybatis实现数据库编程时&#xff0c;都需要添加2项一次性配置&#xff1a;配置Mapper接口所在的包&#xff08;package&#xff09;、配置XML文件在哪里。 关于配置Mapper接口所在的包&#xff0c;可以&…