Rocket MQ

作者: byamao1 | 来源:发表于2018-12-06 11:46 被阅读0次

    参考
    万亿级数据洪峰下的分布式消息引擎 - 简书

    Page Cache

    Page Cache是文件的缓存,用于加速对文件的读写,它为RocketMQ提供了更强大的堆积能力。

    RocketMQ将数据文件映射到内存中,写消息的时候首先写入Page Cache,并通过异步刷盘的模式将消息持久化(同时也支持同步刷盘),消息可以直接从Page Cache中读取。

    问题:

    该模式大多数情况读写速度都比较迅速,但当遇到操作系统进行脏页回写,内存回收,内存换入换出等情形时,会产生较大的读写延迟,造成存储引擎偶发的高延迟。

    解决:

    RocketMQ采用了多种优化技术,比如内存预分配,文件预热,mlock系统调用,读写分离等,来保证利用Page Cache优点的同时,消除其带来的延迟。

    降级、限流、熔断

    限流

    对于离线应用场景,容错处理就是利用滑动窗口机制,通过缓慢缩小窗口的手段,来减缓从服务端拉的频率以及消息大小,降低对服务端的影响。
    而对于高频交易,数据复制场景,则采取了快速失败策略,既能预防应用连锁的资源耗尽而引发的应用雪崩,又能有效降低服务端压力,为端到端低延迟带来可靠保障。

    降级
    主要来自两方面:

    一方面来自于用户数据的收集,另一方面来自引擎组件的服务QoS设定。

    对于前者,通过运维管控系统推送应用自身QoS数据,一般会输出如下表格。而引擎组件的服务QoS,如服务于消息问题追溯的链路轨迹组件,对于核心功能来说,定级相对较低,可在洪峰到来之前提前关闭

    相关文章

      网友评论

          本文标题:Rocket MQ

          本文链接:https://www.haomeiwen.com/subject/ixmvcqtx.html