随笔分类 - MQ
摘要:
要深入学习Kafka,理解Kafka的存储机制是非常重要的。本文介绍Kafka存储消息的格式以及数据文件和索引组织方式,以便更好的理解Kafka是如何工作的。
阅读全文

摘要:日常开发中我们接触到的和事件最接近的应该是消息,这两者也比较容易混淆,难以说清楚它们的界限:什么是事件,而什么是消息?
阅读全文
摘要:本文主要介绍了Kafka的几种分区分配策略:RangeAssignor、RoundRobinAssignor、StickyAssignor。其中重点分析了StickyAssignor的实现,StickyAssignor的模式能比RangeAssignor和RoundRobinAssignor提供更加均衡的分配结果,在发生Consumer或者Partition变更的情况下,也能减少不必要的分区调整。总体而言StickyAssignor是一种更好的分配算法,只是实现上稍微有一些复杂。
阅读全文
摘要:介绍Paxos协议的表决过程及一致性证明
阅读全文
摘要:“Pulsar is a distributed pub-sub messaging platform with a very flexible messaging model and an intuitive client API.”
Pulsar是pub-sub模式的分布式消息平台,拥有灵活的消息模型和直观的客户端API。
Pulsar由雅虎开发并开源的下一代消息系统,目前是Apache软件基金会的孵化器项目。
本片文章简单介绍Pulsar的Consumer,包含以下内容:Consumer的体系、消费逻辑的实现
阅读全文
摘要:本片文章简单介绍Pulsar的Producer,包含以下内容:Producer的设计、消息发送的实现
阅读全文
摘要:这周RocketMQ发布了4.3.0版本,New Feature中最受关注的一点就是支持了事务消息。今天花了点时间看了下具体的实现内容,下面是简单的总结。
阅读全文
摘要:介绍Apache Pulsar的概念和架构,以及GEO-REPLICATION,之后对比RocketMQ。
阅读全文
摘要:介绍RocketMQ中顺序消息的实现机制
阅读全文
摘要:介绍什么是延迟消息,延迟消息在业界的实现情况,分析延迟消息的难点,分析RocketMQ延迟消息的实现,推导延迟消息的方案。
阅读全文
摘要:"In computer science, write-ahead logging (WAL) is a family of techniques for providing atomicity and durability (two of the ACID properties) in database systems."——维基百科
在计算机领域,WAL(Write-ahead logging,预写式日志)是数据库系统提供原子性和持久化的一系列技术。
在使用WAL的系统中,所有的修改都先被写入到日志中,然后再被应用到系统状态中。通常包含redo和undo两部分信息。
阅读全文
摘要:采用Pull模型还是Push模型是很多中间件都会面临的一个问题。消息中间件、配置管理中心等都会需要考虑Client和Server之间的交互采用哪种模型:
服务端主动推送数据给客户端?
客户端主动从服务端拉取数据?
本篇文章对比Pull和Push,结合消息中间件的场景进一步探讨有没有其他更合适的模型。
阅读全文
摘要:接上一篇《消息中间件核心实体(0)》,这一篇继续介绍消息中间件中的一些实体。
上一篇主要是Message、Topic、TopicMeta和Queue这样最基础的实体,这几篇介绍一些发送和消费的过程中会涉及到的实体和组件。
阅读全文
摘要:介绍消息中间件的队列模型和消息的写入及读取流程
阅读全文
摘要:介绍MQ的NameServer的模块划分
阅读全文
摘要:在之前MQ系统架构的基础上划分Client的模块
阅读全文
摘要:本篇在上一篇《消息中间件架构讨论》的基础上分析Broker的模块划分。
阅读全文
摘要:接上一篇的《业务方对消息中间件的需求》,在可用性和可靠性的基础上,讨论各种架构的优缺点,最后给出自己关于消息中间件的架构思考。
阅读全文
摘要:接上一篇《消息中间件的一些概念》来谈一谈业务系统对消息中间件的需求
阅读全文