Rocketmq 常见错误和性能优化,system busy, Rocketmq 参数配置(system busy broker busy)

Rocketmq 相传都是亿级消息吞吐能力,但是配置不对,使用不当会导致Rocketmq的性能大大折扣
 

刷盘策略

首先在看问题之前我们看看Rocketmq的刷盘策略,RocketMQ 的所有消息都是持久化的,先写入系统 PAGECACHE,然后刷盘。

总共有两种刷盘策略 异步刷盘和同步刷盘

 

异步刷盘

    异步从表面意思我们也能看出来,我们消息首先存入内存,有异步线程来完成消息的持久化。

同步刷盘

同步刷盘与异步刷盘的唯一区别是异步刷盘写完 PAGECACHE 直接返回,而同步刷盘需要等待刷盘完成才返回, 同步刷盘流程如下:

(1). 写入 PAGECACHE 后,线程等待,通知刷盘线程刷盘。 (2). 刷盘线程刷盘后,唤醒前端等待线程,可能是一批线程。 (3). 前端等待线程向用户返回成功。
 

综上我们可以看出来异步刷盘的性能要远远大于同步刷盘

因为我们是物联网使用场景,允许小概率的事件丢失,所以我们选择的是异步刷盘策略,虽然是异步刷盘,但是如果不优化配置还是会出现以下常见错误

  • [REJECTREQUEST]system busy, start flow control for a while
    
  • broker busy, start flow control for a while

如何优化呢

1、开启异步刷盘,这个要根据业务需求来,金融系统就不建议了。

2、一定要开启内存池化空间管理 ,效果非常明显

    transientStorePoolEnable=true
    transientStorePoolSize=5  (一个代表1G,根据机器内存决定)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值