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

RocketMQ中引入 transientStorePoolEnable 能缓解 pagecach

RocketMQ中引入 transientStorePoolEnable 能缓解 pagecache 的压力背后关键是什么?

展开
收起
vncamyi27xznk 2021-11-28 20:16:35 633 0
1 条回答
写回答
取消 提交回答
    1. 消息先写入到堆外内存中,该内存由于启用了内存锁定机制,故消息的写入是接近直接操作内存,性能能得到保证。
    2. 消息进入到堆外内存后,后台会启动一个线程,一批一批将消息提交到 pagecache,即写消息时对 pagecache 的写操作由单条写入变成了批量写入,降低了对 pagecache 的压力。 3.引入 transientStorePoolEnable 会增加数据丢失的可能性,如果 Broker JVM 进程异 常 退 出 , 提 交 到 P a g e C a c h e 中 的 消 息 是 不 会 丢 失 的 , 但 存 在 堆 外 内 存 ( DirectByteBuffer)中但还未提交到 PageCache 中的这部分消息,将会丢失。但通常情况下,RocketMQ 进程退出的可能性不大,通常情况下,如果启用了 transientStorePool Enable,消息发送端需要有重新推送机制(补偿思想)。

    答复内容摘自《Apache RocketMQ 从入门到实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1139

    2021-11-28 21:09:10
    赞同 展开评论 打赏
问答地址:
相关产品:

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

相关产品

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

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