随笔分类 -  MQ

摘要:Kafka消息(存储)格式及索引组织方式要深入学习Kafka,理解Kafka的存储机制是非常重要的。本文介绍Kafka存储消息的格式以及数据文件和索引组织方式,以便更好的理解Kafka是如何工作的。 阅读全文
posted @ 2021-10-25 09:04 杭州.Mark 阅读(3515) 评论(1) 推荐(1) 编辑
摘要:日常开发中我们接触到的和事件最接近的应该是消息,这两者也比较容易混淆,难以说清楚它们的界限:什么是事件,而什么是消息? 阅读全文
posted @ 2020-07-16 09:02 杭州.Mark 阅读(1488) 评论(0) 推荐(3) 编辑
摘要:本文主要介绍了Kafka的几种分区分配策略:RangeAssignor、RoundRobinAssignor、StickyAssignor。其中重点分析了StickyAssignor的实现,StickyAssignor的模式能比RangeAssignor和RoundRobinAssignor提供更加均衡的分配结果,在发生Consumer或者Partition变更的情况下,也能减少不必要的分区调整。总体而言StickyAssignor是一种更好的分配算法,只是实现上稍微有一些复杂。 阅读全文
posted @ 2019-12-10 09:15 杭州.Mark 阅读(5666) 评论(0) 推荐(1) 编辑
摘要:介绍Paxos协议的表决过程及一致性证明 阅读全文
posted @ 2019-01-21 10:24 杭州.Mark 阅读(1556) 评论(0) 推荐(1) 编辑
摘要:“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的体系、消费逻辑的实现 阅读全文
posted @ 2018-10-09 09:42 杭州.Mark 阅读(7541) 评论(0) 推荐(1) 编辑
摘要:本片文章简单介绍Pulsar的Producer,包含以下内容:Producer的设计、消息发送的实现 阅读全文
posted @ 2018-09-10 08:39 杭州.Mark 阅读(3275) 评论(0) 推荐(2) 编辑
摘要:这周RocketMQ发布了4.3.0版本,New Feature中最受关注的一点就是支持了事务消息。今天花了点时间看了下具体的实现内容,下面是简单的总结。 阅读全文
posted @ 2018-08-07 09:49 杭州.Mark 阅读(18542) 评论(7) 推荐(2) 编辑
摘要:介绍Apache Pulsar的概念和架构,以及GEO-REPLICATION,之后对比RocketMQ。 阅读全文
posted @ 2018-07-16 10:30 杭州.Mark 阅读(35992) 评论(1) 推荐(4) 编辑
摘要:介绍RocketMQ中顺序消息的实现机制 阅读全文
posted @ 2018-05-21 08:54 杭州.Mark 阅读(40054) 评论(3) 推荐(14) 编辑
摘要:介绍什么是延迟消息,延迟消息在业界的实现情况,分析延迟消息的难点,分析RocketMQ延迟消息的实现,推导延迟消息的方案。 阅读全文
posted @ 2018-01-02 09:16 杭州.Mark 阅读(37734) 评论(24) 推荐(38) 编辑
摘要:"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两部分信息。 阅读全文
posted @ 2017-10-09 09:31 杭州.Mark 阅读(10674) 评论(1) 推荐(4) 编辑
摘要:采用Pull模型还是Push模型是很多中间件都会面临的一个问题。消息中间件、配置管理中心等都会需要考虑Client和Server之间的交互采用哪种模型: 服务端主动推送数据给客户端? 客户端主动从服务端拉取数据? 本篇文章对比Pull和Push,结合消息中间件的场景进一步探讨有没有其他更合适的模型。 阅读全文
posted @ 2017-09-15 09:57 杭州.Mark 阅读(4706) 评论(2) 推荐(4) 编辑
摘要:接上一篇《消息中间件核心实体(0)》,这一篇继续介绍消息中间件中的一些实体。 上一篇主要是Message、Topic、TopicMeta和Queue这样最基础的实体,这几篇介绍一些发送和消费的过程中会涉及到的实体和组件。 阅读全文
posted @ 2017-09-04 09:31 杭州.Mark 阅读(1092) 评论(1) 推荐(1) 编辑
摘要:MQ中一些重要实体介绍 阅读全文
posted @ 2017-09-01 08:41 杭州.Mark 阅读(1638) 评论(2) 推荐(1) 编辑
摘要:介绍消息中间件的队列模型和消息的写入及读取流程 阅读全文
posted @ 2017-08-14 09:57 杭州.Mark 阅读(1720) 评论(0) 推荐(1) 编辑
摘要:介绍MQ的NameServer的模块划分 阅读全文
posted @ 2017-07-28 11:32 杭州.Mark 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:在之前MQ系统架构的基础上划分Client的模块 阅读全文
posted @ 2017-07-24 09:40 杭州.Mark 阅读(722) 评论(0) 推荐(1) 编辑
摘要:本篇在上一篇《消息中间件架构讨论》的基础上分析Broker的模块划分。 阅读全文
posted @ 2017-07-17 09:44 杭州.Mark 阅读(1087) 评论(0) 推荐(1) 编辑
摘要:接上一篇的《业务方对消息中间件的需求》,在可用性和可靠性的基础上,讨论各种架构的优缺点,最后给出自己关于消息中间件的架构思考。 阅读全文
posted @ 2017-07-11 09:41 杭州.Mark 阅读(6063) 评论(0) 推荐(5) 编辑
摘要:接上一篇《消息中间件的一些概念》来谈一谈业务系统对消息中间件的需求 阅读全文
posted @ 2017-07-01 11:26 杭州.Mark 阅读(1925) 评论(0) 推荐(4) 编辑