異步復制和同步雙寫主要是主和從的關系。消息需要實時消費的,就需要采用主從模式部署
異步復制:比如這里有一主一從,我們發送一條消息到主節點之后,這樣消息就算從producer端發送成功了,然后通過異步復制的方法將數據復制到從節點
同步雙寫:比如這里有一主一從,我們發送一條消息到主節點之后,這樣消息就並不算從producer端發送成功了,需要通過同步雙寫的方法將數據同步到從節點后, 才算數據發送成功。
同步刷盤:在消息到達MQ后,RocketMQ需要將數據持久化,同步刷盤是指數據到達內存之后,必須刷到commitlog日志之后才算成功,然后返回producer數據已經發送成功。
異步刷盤:,同步刷盤是指數據到達內存之后,返回producer說數據已經發送成功。,然后再寫入commitlog日志。
commitlog:
commitlog就是來存儲所有的元信息,包含消息體,類似於Mysql、Oracle的redolog,所以主要有CommitLog在,Consume Queue即使數據丟失,仍然可以恢復出來。
consumequeue:記錄數據的位置,以便Consume快速通過consumequeue找到commitlog中的數據
---------------------
原文:https://blog.csdn.net/u010634288/article/details/56049305