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

网站初期缺点wordpress 获取栏目

网站初期缺点,wordpress 获取栏目,人工做流量的网站,网站建设外包服务安全管理制度大家好#xff0c;我是锋哥。今天分享关于【RocketMQ消息是如何存储的#xff1f;】面试题。希望对大家有帮助#xff1b; RocketMQ消息是如何存储的#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RocketMQ 使用了一个高性能、分布式的消息存储架构…大家好我是锋哥。今天分享关于【RocketMQ消息是如何存储的】面试题。希望对大家有帮助 RocketMQ消息是如何存储的 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RocketMQ 使用了一个高性能、分布式的消息存储架构来处理消息的存储和持久化。消息的存储设计上考虑了 高吞吐量、高可用性、可靠性以及对 消息的顺序性、分区和持久化的支持。以下是 RocketMQ 消息存储的核心概念和实现机制 1. 存储的基本概念 RocketMQ 将消息存储在磁盘上存储的方式基于 消息队列Topic、消息队列分区Queue 和 消息的日志存储格式它的消息存储由多个 CommitLog 文件和 ConsumeQueue 文件组成。 CommitLog提交日志 CommitLog 是 RocketMQ 的核心消息存储文件所有消息都被追加到这个日志文件中。每一条消息都会按顺序写入到 CommitLog 中消息内容包括消息的元数据和消息体。RocketMQ 会维护多个 CommitLog 文件通常使用循环写的方式。新的消息会被追加到当前文件文件达到一定大小时会自动切换到下一个文件。 ConsumeQueue消费队列 ConsumeQueue 是与消息的消费相关的文件它记录了消息在 CommitLog 中的位置。每个 Topic 下的每个消息队列Queue都会有一个对应的 ConsumeQueue。消费者会通过 ConsumeQueue 来读取消息的位置信息而不需要每次都去查找 CommitLog 中的实际内容。ConsumeQueue 的大小通常会比 CommitLog 小很多因为它只保存消息的偏移量和一些简单的元数据。 IndexFile索引文件 IndexFile 用于加速消息的检索过程。RocketMQ 会定期维护一个基于 CommitLog 中消息的索引索引文件记录了消息在 CommitLog 中的位置信息这使得消费者能够快速定位到指定的消息。 2. 消息存储流程 消息存储的流程主要分为以下几个步骤 1. 消息的写入写入 CommitLog 当生产者发送消息时消息会首先被写入到 Broker 的 CommitLog 文件中。写入的方式是追加到文件末尾RocketMQ 采用的是 顺序写入以提高磁盘 I/O 的效率。每条消息被存储时都会有一个独特的消息 ID以及消息的相关元数据如主题、标签、时间戳等。 2. 消息索引的建立更新 IndexFile RocketMQ 会在消息写入 CommitLog 的同时生成一个索引文件将消息在 CommitLog 中的偏移量和一些关键字如消息 ID、主题等记录到 IndexFile 中。消息的索引文件支持基于主题、消息 ID 等条件进行快速查找。 3. 消费队列ConsumeQueue的创建与更新 每当消息被写入 CommitLog 后消息的偏移量和基本信息会被写入到 ConsumeQueue。ConsumeQueue 文件的大小较小存储的是每条消息的偏移量、消息大小等简单信息消费者可以通过读取 ConsumeQueue 来获取消息位置信息避免每次都读取完整的 CommitLog 文件。 4. 消息的过期和清理 RocketMQ 使用 消息清理策略 来管理消息的过期。消息的过期时间可以根据配置来设置当消息达到过期时间后系统会定期清理不再需要的消息。消息的清理主要通过两种方式 过期删除根据消息的时间戳判断是否过期。日志文件滚动当 CommitLog 文件的大小达到限制时系统会自动切换到下一个文件过期的文件会被标记并清理。 3. 存储的容错和高可用 RocketMQ 提供了 高可用性 和 容错机制 来确保消息不会丢失。具体包括以下几点 1. 消息的复制Broker 高可用 RocketMQ 支持消息的 主从复制。每个 Broker 可以有多个 副本通过复制机制保证消息的高可用性。当某个 Broker 挂掉时其他副本可以继续提供消息的读写操作避免消息丢失。 2. 持久化 所有消息在写入时都会 持久化 到磁盘上。即使 Broker 挂掉消息也不会丢失。RocketMQ 使用了 强一致性 和 事务消息 来保证在分布式环境下消息存储的可靠性。 3. 消息确认机制 生产者发送消息时可以设置消息是否需要确认ACK。如果消息成功写入 CommitLogBroker 会确认该消息并返回给生产者。 4. RocketMQ 存储的文件结构 RocketMQ 的存储结构大致如下 /home/rocketmq/store ├── commitlog # 存储所有消息的 CommitLog 文件 ├── consumequeue # 存储每个消息队列的消息位置信息 ├── index # 存储消息索引信息 ├── translog # 存储事务日志 ├── checkpoint # 存储消息偏移量的元数据 └── lock # 存储 Broker 锁文件commitlog消息的原始存储位置。consumequeue每个 Topic 下每个 Queue 对应的消费队列文件。index用于加速消息查询的索引文件。translog存储事务相关的信息。checkpoint存储有关消费位置和进度的文件。lock锁文件用于 Broker 启动时进行加锁。 5. 总结 RocketMQ 的消息存储设计非常注重高效性、可扩展性和可靠性。通过 CommitLog、ConsumeQueue、IndexFile 等多种文件机制RocketMQ 提供了 高吞吐量 的消息存储能力并且通过 分布式复制 和 事务消息 等特性保证了消息的可靠性和一致性。此外RocketMQ 还设计了强大的 过期和清理机制帮助系统自动管理存储的消息确保长时间运行的系统性能和稳定性。
http://www.hkea.cn/news/14547005/

相关文章:

  • 马克·扎克伯格大学做的网站深圳公司网站制作企业
  • 六安市 网站集约化建设怎么制作网站链接手机
  • 怎么制作网站获取他人iphtml链接网站模板
  • 网站开发和室内制作在长沙阳光医院做网站编辑
  • ktv网站建设方案栖霞网站设计
  • 总行网站建设银行报业余从事网站开发
  • 国家建设部网站首页导购网站 模板
  • 建设项目经济评价网站企业内部网站宣传方案
  • 网站空间服务器续费写文章赚稿费的app
  • 网站推广公司网站城市介绍网站模板
  • 如何让百度更新网站收录学营销app哪个更好
  • 单位门户网站建设工作建议代码编辑器
  • 宿州网站推广安徽网站公司网站
  • 公司平台网站建设注册一个小公司需要什么条件
  • 网页跟网站的区别英雄联盟韩国
  • 做婚介网站可行性报告网站建设一般的长宽
  • 山西营销网站建设设计北京网站建设华网天下科技公司
  • 网络舆情监测seo技术培训中心
  • php做网站的公司有哪些网站建设框架模板下载
  • 建设银行网站驱动苏州网络公司建网站
  • 网站开发费用如何入账哪个公司的室内设计公司
  • 免费发广告网站做网站用c语言可以吗
  • 建站需求这个网站最近运转怎么样?安全性怎么样? 另外建设银行的网银能在这里存取款吗?
  • 网站推广新手教程网站建设前需求调研表
  • 做企业网站域名付费资源下载站源码
  • 做韩国外贸网站东莞城乡住房建设厅网站
  • 电脑什么软件做短视频网站南京学习网站建设
  • .net网站制作seo排名方案
  • 手机网站制作的价格网站留言表单是如何做的
  • 什么网站可以做翻译兼职南昌企业自助建站