消息队列

分类下的全部文章

rocketmq基本概念
消息队列
16 分钟

rocketmq基本概念

这份笔记系统梳理 RocketMQ 的基础消息模型,先从 NameServer、Broker、Producer、Consumer 的分工讲起,说明 NameServer 只负责 Topic 到 Broker 的路由发现,真正的消息接收、磁盘存储与转发由 Broker 完成。文章重点拆解 Broker 内部组件,包括追加写入消息的 CommitLog、按 Topic-Queue 建索引的 ConsumeQueue、按 Key 查询历史消息的 IndexFile,以及刷盘检查点、主从同步和网络请求处理等配套能力。核心术语部分覆盖 Topic、MessageQueue、Queue ID、Offset、Tag、Key 等概念,帮助读者理解消息如何被路由、过滤、定位和记录消费进度。消息模式部分进一步区分 Pull 与基于长轮询的 Push 体验,并说明顺序消息需要将同一业务 Key 路由到同一队列且串行消费,而并行消费依赖多队列提升吞吐但不保证全局顺序。对于事务消息和延迟消息,文章给出半消息、本地事务回查、delayTimeLevel、延迟队列再投递等实现思路,同时提示延迟精度受预设级别限制。最后围绕消费可靠性解释重试次数、死信队列和 ACK 返回状态的关系,强调取到消息不等于消费成功,只有返回 CONSUME_SUCCESS 才会推进消费进度,异常或 RECONSUME_LATER 会触发重试直至进入 DLQ,适合后端开发者建立 RocketMQ 入门认知和排障框架。

rocketmq 配置环境[python]
消息队列
9 分钟

rocketmq 配置环境[python]

这是一份面向 M1 Mac 本地用 Python 接入 RocketMQ 的环境配置与排错记录,核心问题是 rocketmq-client-python 依赖 RocketMQ C/C++ 动态库,而 Apache 官方 Darwin 包只提供 x86_64 版本,无法直接被原生 arm64 Python 加载。配置流程包括下载 rocketmq-client-cpp 2.0.0 的 darwin 压缩包,将头文件和 librocketmq.dylib 安装到 /usr/local/include/rocketmq 与 /usr/local/lib,并用 install_name_tool 修正动态库 ID,再通过 DYLD_LIBRARY_PATH 让 Python 能找到该 dylib。针对 M1 上常见的 incompatible architecture 报错,文章给出使用 Rosetta 启动 iTerm,并创建 CONDA_SUBDIR=osx-64 的 conda Python 3.10 环境来安装 rocketmq-client-python 的做法,验证重点是 platform.machine() 返回 x86_64 且能够导入 Producer。后半部分补充腾讯云 RocketMQ 的差异:NameServer 使用云厂商提供的专属地址,Topic 和 Group 必须先在控制台创建、授权,不支持像自建 Apache RocketMQ 那样自动创建 Topic。对于 No route info of this topic,排查路径集中在确认公网/私网地址是否匹配本地开发场景、Topic 队列是否正确绑定到当前集群 Broker、发送测试消息刷新 NameServer 路由缓存,以及用 telnet、ping 验证网络连通性。适合在 macOS Apple Silicon 上调试 RocketMQ Python SDK、同时接入腾讯云 RocketMQ 的后端开发者参考,尤其是需要区分架构兼容、动态库加载和云端路由配置三类问题时。

消息队列
1 分钟

关于“消息队列”类别

“消息队列”类别用于归档围绕消息中间件、异步通信和事件驱动协作展开的内容,重点承担站点内主题分流和检索定位的作用。该类别的说明强调,使用分类时应先判断文章是否真正讨论消息队列相关问题,而不是仅在业务流程中偶然出现消息发送或通知机制。其边界需要从使用理由、与既有分类的差异、常见话题范围以及是否应合并等维度来界定,以避免同一类内容分散到架构、后端开发或运维等相邻栏目中。适合纳入的内容通常应围绕消息队列的选型、使用场景、可靠性、消费模型、削峰解耦、配置实践或问题排查等方向展开。它的价值不在于给出某个具体队列产品的教程,而是为后续文章建立一致的归档准则,帮助作者和读者快速判断相关内容应放在哪里。对于维护技术知识库或博客分类体系的人来说,这类说明有助于减少重复分类、模糊归档和后期合并成本。