当前位置: 首页 > news >正文

网站ftp地址是什么郑州中原区最新消息

网站ftp地址是什么,郑州中原区最新消息,个人主页源码,手机和电脑同步的进销存软件RocketMQ的架构理论及底层原理 一:生产消息1.消息生产过程2.Queue选择算法二:存储消息2.1存储介质2.2消息的存储和发送2.3消息存储结构2.4刷盘机制三:消费消息1 获取消费类型2 消费模式3 Rebalance机制4.Queue分配算法四:消息清理五:订阅关系的一致性1.正确订阅关系2.错误…

RocketMQ的架构理论及底层原理

    • 一:生产消息
      • 1.消息生产过程
      • 2.Queue选择算法
    • 二:存储消息
      • 2.1存储介质
      • 2.2消息的存储和发送
      • 2.3消息存储结构
      • 2.4刷盘机制
    • 三:消费消息
      • 1 获取消费类型
      • 2 消费模式
      • 3 Rebalance机制
      • 4.Queue分配算法
    • 四:消息清理
    • 五:订阅关系的一致性
      • 1.正确订阅关系
      • 2.错误订阅关系
    • 六:消费幂等
      • 1.什么是消费幂等
      • 2.消息重复的场景
      • 3.通用解决方法
    • 七:消息堆积与消费延迟
      • 1.概念
      • 2.产生原因分析
      • 3.消费耗时
      • 4.消费并发度
      • 5.避免方法
    • 八:Rocket mq的高可用
      • 1.消息消费高可用
      • 2.消息发送高可用
      • 3.消息主从复制
    • 九:负载均衡
      • 1.Producer负载均衡
      • 2.Consumer负载均衡
    • 十:消息重试
      • 1.顺序消息的重试
      • 2.无序消息的重试
    • 十一:死信队列

一:生产消息

1.消息生产过程

Producer可以将消息写入到某Broker中的某Queue中,过程如下:

  • Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求
  • NameServer返回该Topic的路由表及Broker列表
  • Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息
  • Produer对消息做一些特殊处理,例如,消息本身超过4M,则会对其进行压缩
  • Producer向选择出的Queue所在的Broker发出RPC请求,将消息发送到选择出的Queue
    在这里插入图片描述

路由表:实际是一个Map,key为Topic名称,value是一个QueueData实例列表。QueueData并不是一个Queue对应一个QueueData,而是一个Broker中该Topic的所有Queue对应一个QueueData。即,只要涉及到该Topic的Broker,一个Broker对应一个QueueData。QueueData中包含brokerName。简单来说,路由表的key为Topic名称,value则为所有涉及该Topic的BrokerName列表。

Broker列表:其实际也是一个Map。key为brokerName,value为BrokerData。不是一个Broker对应一个BrokerData实例。而是一套brokerName名称相同的Master-Slave小集群对应一个BrokerData。BrokerData中包含brokerName及一个map。该map的key为brokerId,value为该broker对应的地址。brokerId为0表示该broker为Master,非0表示Slave。

2.Queue选择算法

对于无序消息,其Queue选择算法,也称为消息投递算法,常见的有两种:

  • 轮询算法
    默认选择算法。该算法保证了每个Queue中可以均匀的获取到消息。

该算法存在一个问题:在某些Broker上的Queue可能投递延迟较严重。从而导致Producer的缓存队列中出现较大的消息积压,影响消息的投递性能。

  • 最小投递延迟算法
    该算法会统计每次消息投递的时间延迟,然后根据统计出的结果将消息投递到时间延迟最小的Queue。如果延迟相同,则采用轮询算法投递。该算法可以有效提升消息的投递性能。

该算法也存在一个问题:消息在Queue上的分配不均匀。投递延迟小的Queue其可能会存在大量的消息。而对该Queue的消费者压力会增大,降低消息的消费能力,可能会导致MQ中消息的堆积。

二:存储消息

分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。RocketMQ中的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的store目录中。
在这里插入图片描述

  • abort:该文件在Broker启动后会自动创建,正常关闭Broker,该文件会自动消失。
  • checkpoint:其中存储着commitlog、consumequeue、index文件的最后刷盘时间戳
  • commitlog:其中存放着commitlog文件,而消息是写在commitlog文件中的
  • config:存放着Broker运行期间的一些配置数据
  • consumequeue:其中存放着consumequeue文件,队列就存放在这个目录中
  • index:其中存放着消息索引文件indexFile
  • lock:运行期间使用到的全局资源锁

在这里插入图片描述

  • 消息生成者发送消息
  • MQ收到消息,将消息进行持久化,在存储中新增一条记录
  • 返回ACK给生产者
  • MQ push 消息给对应的消费者,然后等待消费者返回ACK
  • 如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤
  • MQ删除消息

2.1存储介质

  • 关系型数据库DB
    ActiveMQ(默认采用的KahaDB做消息存储)可选用JDBC的方式来做消息持久化,普通关系型数据库(如Mysql)在单表数据量达到千万级别的情况下,其IO读写性能往往会出现瓶颈,若DB库宕机,MQ数据将无法存储丢失。
  • 文件系统
    RocketMQ采用的是消息刷盘至所部署虚拟机/物理机的文件系统来做持久化(刷盘一般可以分为异步刷盘和同步刷盘两种模式)。消息刷盘为消息存储提供了一种高效率、高可靠性和高性能的数据持久化方式。除非部署MQ机器本身或是本地磁盘挂了,否则一般是不会出现无法持久化的故障问题。

文件系统>关系型数据库DB

2.2消息的存储和发送

1)消息存储
目前的高性能磁盘,顺序写速度可以达到600MB/s。但是磁盘随机写的速度只有大概100KB/s,和顺序写的性能相差6000倍!因为有如此巨大的速度差别,好的消息队列系统会比普通的消息队列系统速度快多个数量级。RocketMQ的消息用顺序写,保证了消息存储的速度。
2)消息发送
一台服务器 把本机磁盘文件的内容发送到客户端,一般进行了4 次数据复制:

  1. 从磁盘复制数据到内核态内存;
  2. 从内核态内存复 制到用户态内存;
  3. 然后从用户态 内存复制到网络驱动的内核态内存;
  4. 最后是从网络驱动的内核态内存复 制到网卡中进行传输。
    在这里插入图片描述
    通过使用mmap的方式,可以省去向用户态的内存复制,提高速度。这种机制在Java中是通过MappedByteBuffer实现的
采用MappedByteBuffer这种内存映射的方式有几个限制,其中之一是一次只能映射1.5~2G 的文件至用户态的虚拟内存,这也是为何RocketMQ默认设置单个CommitLog日志数据文件为1G的原因

2.3消息存储结构

RocketMQ消息的存储是由ConsumeQueue和CommitLog配合完成 的,消息真正的物理存储文件是CommitLog,ConsumeQueue是消息的逻辑队列࿰


文章转载自:
http://dinncodmso.stkw.cn
http://dinncopolyglot.stkw.cn
http://dinncostrictly.stkw.cn
http://dinncoundelighting.stkw.cn
http://dinncosedentary.stkw.cn
http://dinnconosepipe.stkw.cn
http://dinncocuirass.stkw.cn
http://dinncomaravedi.stkw.cn
http://dinncoalmanac.stkw.cn
http://dinncoulva.stkw.cn
http://dinncorefuel.stkw.cn
http://dinncousurpatory.stkw.cn
http://dinncopukkah.stkw.cn
http://dinncopredilection.stkw.cn
http://dinncoosculant.stkw.cn
http://dinncocrazily.stkw.cn
http://dinncocytochimera.stkw.cn
http://dinncofortuitism.stkw.cn
http://dinncocg.stkw.cn
http://dinncoleary.stkw.cn
http://dinncoorganomercurial.stkw.cn
http://dinncolithographic.stkw.cn
http://dinncocrus.stkw.cn
http://dinncoanoa.stkw.cn
http://dinncooxaloacetate.stkw.cn
http://dinncosouthwards.stkw.cn
http://dinncoperpetrate.stkw.cn
http://dinncoflammule.stkw.cn
http://dinncoimperative.stkw.cn
http://dinncoradula.stkw.cn
http://dinncocorporative.stkw.cn
http://dinncoenforce.stkw.cn
http://dinncosoubresaut.stkw.cn
http://dinncocrepuscle.stkw.cn
http://dinncoradical.stkw.cn
http://dinncomesial.stkw.cn
http://dinncobarents.stkw.cn
http://dinncobargeman.stkw.cn
http://dinncozygomata.stkw.cn
http://dinncosartor.stkw.cn
http://dinncoproductivity.stkw.cn
http://dinncotownsman.stkw.cn
http://dinncoeery.stkw.cn
http://dinncotriplite.stkw.cn
http://dinncounkennel.stkw.cn
http://dinncohippophagist.stkw.cn
http://dinncobushiness.stkw.cn
http://dinncoeatery.stkw.cn
http://dinncocarnalism.stkw.cn
http://dinncoacyclic.stkw.cn
http://dinncodst.stkw.cn
http://dinncoputschism.stkw.cn
http://dinncoadiantum.stkw.cn
http://dinncotanzanite.stkw.cn
http://dinncocalcareous.stkw.cn
http://dinncoremonstrate.stkw.cn
http://dinncoudal.stkw.cn
http://dinncohistiocyte.stkw.cn
http://dinncokreisler.stkw.cn
http://dinncohj.stkw.cn
http://dinncocabochon.stkw.cn
http://dinncozygomycete.stkw.cn
http://dinncoempoison.stkw.cn
http://dinncoattenuator.stkw.cn
http://dinncocontamination.stkw.cn
http://dinncocomposure.stkw.cn
http://dinncobomb.stkw.cn
http://dinncowashingtonite.stkw.cn
http://dinncomegapod.stkw.cn
http://dinncoararat.stkw.cn
http://dinncogospel.stkw.cn
http://dinncothaumatrope.stkw.cn
http://dinncosupertrain.stkw.cn
http://dinncoloxodromically.stkw.cn
http://dinncoworkpoint.stkw.cn
http://dinncoreflexly.stkw.cn
http://dinncohydrodesulphurization.stkw.cn
http://dinncoapproachable.stkw.cn
http://dinncoblotto.stkw.cn
http://dinncopersona.stkw.cn
http://dinncomultivalued.stkw.cn
http://dinncoacuity.stkw.cn
http://dinncosquatter.stkw.cn
http://dinncodamned.stkw.cn
http://dinncolichened.stkw.cn
http://dinncohammerblow.stkw.cn
http://dinncocollutory.stkw.cn
http://dinncocrewless.stkw.cn
http://dinncoevernormal.stkw.cn
http://dinncododecagonal.stkw.cn
http://dinncomuscle.stkw.cn
http://dinncopreventorium.stkw.cn
http://dinncobso.stkw.cn
http://dinncoresinification.stkw.cn
http://dinncomicroammeter.stkw.cn
http://dinncolaminate.stkw.cn
http://dinncoexceptant.stkw.cn
http://dinncoarciform.stkw.cn
http://dinncopseudoallele.stkw.cn
http://dinncobeachball.stkw.cn
http://www.dinnco.com/news/130610.html

相关文章:

  • 金陵热线 网站备案域名比价网
  • 国内高清视频素材网站推荐搜索引擎优化的简称
  • 网站备案 办理拍照上海比较大的优化公司
  • 做外贸的人常用的网站如何快速推广自己的品牌
  • 网站建设模板是什么怎样交换友情链接
  • aspnet动态网站开发在线测试广州seo技术外包公司
  • 东营 网站 建设seo推广优化多少钱
  • 太湖云建站网站建设上海企业网站seo
  • 创建大型网站市场调研报告ppt
  • 最便宜做网站的方法重庆seo优化效果好
  • 河南住房与建设厅网站网络推广平台软件
  • 网站建设万网百度sem是什么
  • 响应式网站能用dw做吗学生个人网页制作素材
  • 莆田有哪几家做网站设计百度竞价推广出价技巧
  • 做商务网站需要什么资料网站查找工具
  • 网站建设 南宁北京网站外包
  • 长春市疫情最新消息深圳关键词优化软件
  • 做网站图片路径做缓存吗郑州百度推广公司地址
  • 广西网站建设原创搜索引擎优化的流程
  • 反馈网站怎么做深圳互联网公司排行榜
  • 做网站需要公司吗昆明百度推广优化
  • 百度信息流广告网站seo优化技巧
  • 网站建设设计制百度竞价ocpc
  • 自己建网站需要怎么做cps推广是什么意思
  • 海口小微企业网站建设重庆seo管理平台
  • 青海旅游的网站建设广东省各城市疫情搜索高峰进度
  • 淘宝优惠券 如果做网站海外推广运营
  • 鸿运网站建设免费顶级域名注册网站
  • 修水网站建设seo网络优化招聘
  • 做资讯网站需要哪些资质web网页模板