RocketMQ源码分析(一) RocketMQ设计思想

本文主要讲解RocketMQ的总体架构和设计思想,通过对RocketMQ的一个总览,以便于我们更好的学习和理解后面的每个章节。

1.设计理念

RocketMQ设计基于主题的发布和订阅模式,核心功能包括消息发送,消息存储,消息消费。
RocketMQ的设计追求简单和性能第一,主要体现在以下三个方面:
<1>NameServer设计及其简单。
RocketMQ摒弃了业界常用的zookeeper作为注册中心,而是使用自研的NameServer来实现元数据的管理,
因为Topic路由信息无须在集群间保持强一致性,追求最终一致性,并且能容忍分钟级的不一致,所以RocketMQ的NameServer集群间互不通信,极大降低了设计的复杂度,降低了对网络的要求,提升性能;

<2>高效的IO存储机制。
RocketMQ追求消息发送的高吞吐量,RocketMQ消息存储文件设计成文件组的概念,组内单个文件大小固定,方便引入内存映射机制;
所有主题的消息存储基于顺序写,提升写性能,同时为了兼顾消息消费与消息查找,引入了消息消费队列文件与索引文件。

<3>容忍存在的设计缺陷。
将某些工作下放给使用者,比如消费的消费只保证至少消费一次,而不保证只消费一次;

2.设计目标

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 生活除了微观还有宏观,除了琐碎还有诗和远方。 以下这些都是可以考虑到并联起来的: 工作和成长并联起来。 自己成长与...
    守住这块热土阅读 1,580评论 0 0
  • 白日里的那些人 睡了 困惑中流淌的梦 缺氧的脑子 飘忽的灵魂 放荡的态度 我咬着烦恼的唾沫 分解了这个寒夜 其实还...
    想让你看我写的诗阅读 1,468评论 0 0
  • 今天看到一则微博,关于“安慰剂效应”—— 日常生活中,很多疾病,都存在安慰剂效应。 最常见的,感冒难受,或者,肚子...
    Fang2023阅读 1,594评论 1 0

友情链接更多精彩内容