Rocketmq消息可靠性之同步、异步刷盘以及同步异步复制

      消息的可靠性主要取决于刷盘以及复制的策略。只要数据写到磁盘就安全了,只要磁盘不损坏,不管服务器宕机或者重启,消息会一直存在

1.什么是同步刷盘和异步刷盘

 刷盘就是内存跟磁盘的交互,应用程序例如mysql,插入一条数据的时候不是实时的写到磁盘里去,他会根据你配置的不同策略,会2s或者1s或者实时的将内存中的数据刷到磁盘里去。

     1.1.什么是异步刷盘:

异步刷盘就是数据不是实时写到磁盘中,他会根据刷盘策略进行写入磁盘(数据可能丢失,性能高)

     1.2.什么是同步刷盘:

同步刷盘就是消息一进来就马上将消息写入到磁盘里面,写完之后告诉消息发送者消息发送成功。好处就是数据安全性高

      1.3.选择:

各有优缺点,异步刷盘因为发送者一发到内存就直接收到成功的消息,效率比较高,如果发送者发送了消息到内存,然后直接收到发送成功的消息,那么这时候服务器宕机数据就会丢失了。而同步刷盘数据安全性就比较高,发送者会在消息写入磁盘内才会收到成功的消息,保证消息不丢失,那么相应的效率就会降低

 

2.消息的同步和异步复制

针对rocketmq的Master - Slave节点

与同步刷盘,异步刷盘是没关联的,主节点可以配置同步刷盘或者异步刷盘,从节点也可以配置同步刷盘或者异步刷盘

        2.1.异步复制:

主节点收到消息之后立马就返回给用户,然后再开一个线程与从节点进行复制,效率特别高,数据可能丢失

        2.2.同步复制:

主节点收到消息之后不立马返回给用户,会等从节点复制成功之后再返回发送成功的消息给用户。数据安全性高,性能低一点

      最终推荐这种方式:同步双写(即M-S同步复制),异步刷盘,在可靠性跟性能方面进行折中。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值