Kafka---kafka概述和kafka基础架构
kafka概述和kafka基础架构
文章目录
- kafka概述和kafka基础架构
- Kafka定义
- 消息队列
- 传统消息队列应用场景
- 缓存/消峰
- 解耦
- 异步通信
- 消息队列的两种模式
- 点对点模式
- 发布/订阅模式
- kafka基础架构
- producer
- Consumer
- Consumer Group(CG)
- Broker
- Topic
- Partition
- Replica
- Leader
- Follower
Kafka定义
传统定义
Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
新定义
Kafka是一个开源的分布式事件流平台 (Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。
消息队列
常见的消息队列Kafka、ActiveMQ 、RabbitMQ 、RocketMQ
在大数据场景主要采用 Kafka 作为消息队列。在 JavaEE 开发中主要采用 ActiveMQ、RabbitMQ、RocketMQ
传统消息队列应用场景
传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信
缓存/消峰
有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况


解耦
解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束

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

异步

消息队列的两种模式
点对点模式
消费者主动拉取数据,消息收到后清除消息
生产者生产消息放入消息队列,消费者主动拉取消息消费,消息收到后清除消息

发布/订阅模式
可以有多个topic主题(浏览、点赞、收藏、评论等)
消费者消费数据之后,不删除数据
每个消费者相互独立,都可以消费到数据
生产者可以产生多个主题的消息,消费者拉取自己需要的数据进行消费,消息收到并不删除数据,每个消费者相互独立,都可以消费到数据

kafka基础架构

producer
消息生产者,就是向 Kafka broker 发消息的客户端
Consumer
消息消费者,向 Kafka broker 取消息的客户端
Consumer Group(CG)
消费者组,由多个 consumer 组成
消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费
消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者
Broker
一台 Kafka 服务器就是一个 broker
一个集群由多个 broker 组成。一个broker 可以容纳多个 topic
Topic
可以理解为一个队列,
生产者和消费者面向的都是一个 topic
主题是已发布消息的类别名称,发布和订阅数据必须指定主题
主题的副本数量不大于Brokers个数
Partition
为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个序的队列
每个partition对应一个文件夹<topic_name>-<partition_id>,每个partition被视为一个有序的日志文件(LogSegment)
每个partition都有一个Leader,0或多个Followers
Replica
副本
一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower
Relication策略是基于partition,而不是Topic
Leader
每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader
Follower
每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader
相关文章:
Kafka---kafka概述和kafka基础架构
kafka概述和kafka基础架构 文章目录kafka概述和kafka基础架构Kafka定义消息队列传统消息队列应用场景缓存/消峰解耦异步通信消息队列的两种模式点对点模式发布/订阅模式kafka基础架构producerConsumerConsumer Group(CG)BrokerTopicPartitionReplicaLead…...
《JavaEE初阶》多线程基础
《JavaEE初阶》多线程基础 文章目录《JavaEE初阶》多线程基础前言:多线程的概念简单创建线程并运行:简述Thread中run方法与start方法的区别创建线程的几种方法:探讨串行执行与并行执行的执行时间多线程的使用场景:Thread类简单介绍:构造方法:获取线程的常见属性:线程的常用方法…...
技术分享 | OMS 初识
作者:高鹏 DBA,负责项目日常问题排查,广告位长期出租 。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文主要贡献者:进行OMS源码分析的…...
【Elastic (ELK) Stack 实战教程】10、ELK 架构升级-引入消息队列 Redis、Kafka
目录 一、ELK 架构面临的问题 1.1 耦合度过高 1.2 性能瓶颈 二、ELK 对接 Redis 实践 2.1 配置 Redis 2.1.1 安装 Redis 2.1.2 配置 Redis 2.1.3 启动 Redis 2.2 配置 Filebeat 2.3 配置 Logstash 2.4 数据消费 2.5 配置 kibana 三、消息队列基本概述 3.1 什么是…...
优先、双端队列-我的基础算法刷题之路(八)
本篇博客旨在整理记录自已对优先队列、双端队列的一些总结,以及刷题的解题思路,同时希望可给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉 &…...
Python3 os.symlink() 方法、Python 质数判断
Python3 os.symlink() 方法 概述 os.symlink() 方法用于创建一个软链接。 语法 symlink()方法语法格式如下: os.symlink(src, dst)参数 src -- 源地址。 dst -- 目标地址。 返回值 该方法没有返回值。 实例 以下实例演示了 symlink() 方法的使用࿱…...
P1972 [SDOI2009] HH的项链
[SDOI2009] HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来…...
力扣解法汇总1026. 节点与其祖先之间的最大差值
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值…...
010:Mapbox GL移动鼠标mousemove,显示坐标信息
第010个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中移动鼠标mousemove,显示坐标信息。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共81行)相关API参考:专栏目标示例效果 配置方式 1)查看基础…...
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
百度暑期实习 C++ 一面
1.数组 链表 数组是一种线性数据结构,其中相同类型的元素连续存储在一段内存中,并且可以通过索引来访问每个元素。数组的优点是随机访问元素非常快速,但缺点是插入或删除元素可能需要移动其他元素。 链表也是一种线性数据结构,但…...
计算机网络第一章(概述)【湖科大教书匠】
1. 各种网络 网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)"**因特…...
【JS】vis.js使用之vis-timeline使用攻略,vis-timeline在vue3中实现时间轴、甘特图
vis.js使用之vis-timeline使用攻略,vis-timeline实现时间轴、甘特图1、vis-timeline简介2、安装插件及依赖3、简单示例4、疑难问题集合1. 中文zh-cn本地化2. 关于自定义class样式无法被渲染3. 关于双向数据绑定vis.js是一个基于浏览器的可视化库,它提供了…...
机器学习——数据处理
机器学习简介 机器学习是人工智能的一个实现途径深度学习是机器学习的一个方法发展而来 机器学习:从数据中自动分析获得模型,并利用模型对未知数据进行预测。 数据集的格式: 特征值目标值 比如上图中房子的各种属性是特征值,然…...
多种文字翻译软件-翻译常用软件
整篇文档翻译软件 整篇文档翻译软件是一种实现全文翻译的自动翻译工具,它能够快速、准确地将整篇文档的内容翻译成目标语言。与单词、句子翻译不同,整篇文档翻译软件不仅需要具备准确的语言识别和翻译技术,还需要考虑上下文语境和文档格式等多…...
Baumer工业相机堡盟工业相机如何通过BGAPI SDK将相机图像数据用二进制的方式保存到本地(C++)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK将相机图像数据用二进制的方式保存到本地(C)Baumer工业相机Baumer工业相机将图像保存为二进制图像的技术背景代码分析第一步:先转换Byte*图像为二进制图像第二步:在回调函数里进行Buf…...
JavaScript模块的导出和导入之export和module.exports的区别
export和module.exports (需要前面的export没有“s”,后面的module.exports 有“s”) 使用两者根本区别是 **exports **返回的是模块函数 **module.exports **返回的是模块对象本身,返回的是一个类 使用上的区别是exports的方法可以直接调用module.exports需要new…...
基于朴素贝叶斯分类器的钞票真伪识别模型
基于朴素贝叶斯分类器的钞票真伪识别模型 内容 本实验通过实现钞票真伪判别案例来展开学习朴素贝叶斯分类器的原理及应用。 本实验的主要技能点: 1、 朴素贝叶斯分类器模型的构建 2、 模型的评估与预测 3、 分类概率的输出 源码下载 环境 操作系统…...
【Python】【进阶篇】二十二、Python爬虫的BS4解析库
目录二十二、Python爬虫的BS4解析库22.1 BS4下载安装22.2 BS4解析对象22.3 BS4常用语法1) Tag节点22.4 遍历节点22.5 find_all()与find()1) find_all()2) find()22.6 CSS选择器二十二、Python爬虫的BS4解析库 Beautiful Soup 简称 BS4(其中 4 表示版本号࿰…...
UDS统一诊断服务【五】诊断仪在线0X3E服务
文章目录前言一、诊断仪在线服务介绍二、数据格式2.1,请求报文2.2,子功能2.3,响应报文前言 本文介绍UDS统一诊断服务的0X3E服务,希望能对你有所帮助 一、诊断仪在线服务介绍 诊断仪在线服务比较简单,其功能就是告诉服…...
越擎科技发布机器人离线编程软件应用白皮书,阐述机器人装配工艺规划、离线编程与虚拟调试方案的原理及优势
摘要:越擎科技针对机器人复杂产品装配的应用场景,打造全国产的机器人离线编程软件iRobotCAM,可以快速的提取装配约束关系并进行装配工艺规划,并编写机器人程序及快速仿真,提升装配过程的精度及编程效率。 根据艾瑞咨询…...
Leaflet图层顺序实战:如何用setZIndex和bringToFront让你的地图层级不再混乱
Leaflet图层顺序实战:如何用setZIndex和bringToFront让你的地图层级不再混乱 当地图上同时存在多个图层时,你是否遇到过标注被底图遮盖、动态添加的标记消失在多边形下方,或是图层叠加顺序完全失控的情况?这些看似简单的层级问题&…...
终极窗口尺寸编辑器:SRWE让你的应用程序窗口自由伸缩
终极窗口尺寸编辑器:SRWE让你的应用程序窗口自由伸缩 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE Simple Runtime Window Editor (SRWE) 是一款革命性的开源工具,它能让你实时调整任何…...
新手零基础入门CAN总线:借助快马AI生成可运行代码理解通信机制
作为一个刚接触嵌入式开发的菜鸟,最近被导师要求学习CAN总线协议。面对手册里密密麻麻的寄存器配置和报文格式说明,我一度怀疑自己是不是选错了专业方向。直到发现了InsCode(快马)平台,用它的AI生成功能快速搭建了一个可运行的CAN通信demo&am…...
5个宝藏级3D模型下载站:从GLB到Blender,一站式解决你的建模素材需求
1. 为什么你需要这些3D模型资源站? 作为一个在3D建模领域摸爬滚打多年的老手,我深知找素材的痛苦。记得刚入行时,为了找一个简单的沙发模型,我花了整整三天翻遍各种论坛和资源站。现在回头看,如果当时有人给我一份靠谱…...
Czkawka:用Rust构建的开源存储清理工具全解析
Czkawka:用Rust构建的开源存储清理工具全解析 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 一、场景痛点:当代存储管理的…...
广东省高级会计师评审辅导知名品牌
在职业发展的道路上,专业资格认证是许多财务从业者提升自我、拓宽职业路径的重要一环。广东省高级会计师评审,作为一项专业性强、要求严格的职业能力认定,其准备过程需要系统性的指导与支持。中山力朗教育咨询有限公司,作为一家立…...
4个革新性步骤:NHSE动物森友会存档编辑器完全指南
4个革新性步骤:NHSE动物森友会存档编辑器完全指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE(动物森友会存档编辑器)作为一款开源免费工具,…...
QuickSnap:提升三维建模效率的快速对齐工具——三维建模爱好者的精准对齐解决方案
QuickSnap:提升三维建模效率的快速对齐工具——三维建模爱好者的精准对齐解决方案 【免费下载链接】quicksnap Blender addon to quickly snap objects/vertices/points to object origins/vertices/points 项目地址: https://gitcode.com/gh_mirrors/qu/quicksna…...
uniapp集成腾讯地图:从marker点聚合到轨迹回放的跨端实战与性能调优
1. uniapp集成腾讯地图SDK的核心步骤 第一次在uniapp里用腾讯地图SDK时,我踩了个大坑——直接在H5端跑代码发现地图出不来。后来才明白,腾讯地图在H5端需要单独配置安全域名。具体操作是在腾讯地图开放平台申请key时,必须把H5的域名加入白名单…...
