开发者社区 > 云原生 > 正文

Apache RocketMQ中 append 请求如何理解?

Apache RocketMQ中 append 请求如何理解?

展开
收起
vncamyi27xznk 2021-11-20 20:12:39 382 0
1 条回答
写回答
取消 提交回答
  • image.png

    代码@1:检查状态。 代码@2:如果请求类型不为 APPEND,则退出,结束本轮 doWork 方法执行。 代码@3:writeIndex 表示当前追加到从该节点的序号,通常情况下主节点向从节点发送 append 请求时,会附带主节点的已提交指针,但如何 append 请求发不那么频繁, writeIndex 大于 leaderEndIndex 时(由于 pending 请求超过其 pending 请求的队列长度(默认为 1w),时,会阻止数据的追加,此时有可能出现 writeIndex 大于 leaderEndIndex 的情况,此时单独发送 COMMIT 请求。 代码@4:检测 pendingMap(挂起的请求数量)是否发送泄漏,即挂起队列中容量是否超过允许的最大挂起阀值。获取当前节点关于本轮次的当前水位线(已成功 append 请求的日志序号),如果发现正在挂起请求的日志序号小于水位线,则丢弃。 代码@5:如果挂起的请求(等待从节点追加结果)大于 maxPendingSize 时,检查并追加一次 append 请求。 代码@6:具体的追加请求。 答复内容摘自《Apache RocketMQ 源码解析》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1140

    2021-11-21 13:45:44
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    行业实践:RocketMQ 业务集成典型行业应用和实践 立即下载
    技术揭秘:RocketMQ 5.0 云原生架构升级之路 立即下载
    RocketMQ Summit 2022 开源生态发展 立即下载

    相关镜像