rocketmq 同步刷盤和異步刷盤以及主從復制之同步復制和異步復制你理解了嗎

?

同步刷盤、異步刷盤

 RocketMQ的消息是存儲到磁盤上的,這樣既能保證斷電后恢復,又可以讓存儲的消息量超出內存的限制。

RocketMQ為了提高性能,會盡可能地保證磁盤的順序寫。消息在通過Producer寫入RocketMQ的時候,有兩種

寫磁盤方式:

  1)異步刷盤方式:在返回寫成功狀態時,消息可能只是被寫入了內存的PAGECACHE,寫操作的返回快,

吞吐量大;當內存里的消息量積累到一定程度時,統一觸發寫磁盤操作,快速寫入

  2)同步刷盤方式:在返回寫成功狀態時,消息已經被寫入磁盤。具體流程是,消息寫入內存的PAGECACHE后,立刻

通知刷盤線程刷盤,然后等待刷盤完成,刷盤線程執行完成后喚醒等待的線程,返回消息寫成功的狀態

?

同步刷盤還是異步刷盤,是通過Broker配置文件里的flushDiskType參數設置的,這個參數被設置成SYNC_FLUSH、ASYNC_FLUSH中的一個

?

?

同步復制、異步復制

  如果一個broker組有Master和Slave,消息需要從Master復制到Slave上,有同步和異步兩種復制方式。

同步復制是等Master和Slave

均寫成功后才反饋給客戶端寫成功狀態;異步復制方式是只要Master寫成功即可反饋給客戶端寫成功狀態

  這兩種復制方式各有優劣,在異步復制方式下,系統擁有較低的延遲和較高的吞吐量,但是如果Master

出了故障,有些數據因為沒有被寫入Slave,有可能會丟失;在同步復制方式下,如果Master出故障,Slave

上有全部的備份數據,容易恢復,但是同步復制會增大數據寫入延遲,降低系統吞吐量。

  同步復制和異步復制是通過Broker配置文件里的brokerRole參數進行設置的,這個參數可以被設置成

ASYNC_MASTER、SYNC_MASTER、SLAVE三個值中的一個。 

?

?

?

 實際應用中要結合業務場景,合理設置刷盤方式和主從復制方式,尤其是SYNC_FLUSH方式,由于頻繁

的觸發寫磁盤動作,會明顯降低性能。通常情況下,應該把Master和Slave設置成ASYNC_FLUSH的刷盤方式,

主從之間配置成SYNC_MASTER的復制方式,這樣即使有一臺機器出故障,仍然可以保證數據不丟。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272127.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

七層網絡模型、TCP/IP四層模型、網絡數據包、交換機路由器區別

七層網絡模型(簡稱OSI模型): OSI 模型(Open System Interconnection model)是一個由國際標準化組織提出的概念模型,試圖供一個使各種不同的計算機和網絡在世界范圍內實現互聯的標準框架。它將計算機網絡體系結構劃分為七層,每層都可以提供抽…

Linux中Shell的算數運算符和位運算符用法筆記

1、算數運算符 算數運算符主要是加、減、乘、除、余、冪等常見的算術運算,以及加等、減等、乘等、除等、余等復合算術運算。 注意:Shell只支持整數運算,小數部分會舍去。一般情況下算術運行需要個let命令一起來使用。注意除法運算&#xff0c…

ostu閾值分割python實現_PIL大津法閾值分割Python代碼

[Python]代碼#codingutf8"""大津法閾值分割:A Threshold Selection Method from Gray-Level Histograms需要PIL庫"""import Imageimport sysdef sigma(im,i,debug False):"""閾值為i時,圖像im中兩組的方差"""c0_p…

php執行一條insert插入兩條數據其中一條亂碼

顯然這就是編碼問題,但是問題從哪來的呢, 我把文件編碼以及代碼的編碼都設置成utf-8了,為什么還有這個問題于是我就開始寫測試腳本 第一條 mysql_query(insert into table value(1,1,"思考思考123")) 測試沒有問題 第二條 $name$_G…

TCP三次握手、四次揮手、socket,tcp,http三者之間的區別和原理

接著上一篇文章敘述: TCP/IP連接(在互聯網的通信中,永遠是客戶端主動連接到服務端): 手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使…

小程序接入h5頁面_小程序-實現怎么跳轉打開 H5 網頁鏈接(或跳轉至公眾號文章)...

背景有時候,因為業務需求,在小程序當中,需要跳轉到 h5 網頁,或跳轉到公眾號,形成流量的閉環,那在小程序當中怎么實現呢?實例效果前提條件該小程序與需要跳轉至的公眾號(訂閱號/服務號)進行了綁定關聯使用小程序開放能力web-view實現跳轉(承載網頁的容器。會自動鋪滿整個小程序…

NSUserDefaults的用法

NSUserDefaults適合存儲輕量級的本地數據,比如要保存一個登陸界面的數據,用戶名、密碼之類的,個人覺得使用NSUserDefaults是首選。下次再登陸的時候就可以直接從NSUserDefaults里面讀取上次登陸的信息咯。 因為如果使用自己建立的plist文件什…

http、https、密碼學基礎、GET和POST區別

http協議相關: http協議的特性: http協議是建立在TCP/IP協議之上應用層協議,默認端口為80或者8080。http協議的的特點是無狀態,無連接(并不是真的沒有連接,而是在請求數據的時候有連接,在數據回來的時候就…

apache 配置文件內使用 8080 端口_【SpringBoot 框架】- SpringBoot 配置文件

一、SpringBoot配置文件類型SpringBoot是基于約定的,所以很多配置都有默認值,但如果想使用自己的配置替換默認配置的話 ,就可以自己編寫配置文件進行相應配置,起步依賴spring-boot-starter-parent 中,有配置文件的引入…

Linux中while循環的用法筆記

Shell中可以采用while循環來實現需要進行循環的操作。 語法結構如下: while exp do command done 執行過程:while將測試exp的返回值,如果返回值為true則執行循環體的命令,返回值為false則不執行循環。循環完成后會進入下一次循環之…

IOS9.0 導航欄狀態欄

狀態欄高度20px 豎屏是導航欄高度44px 橫屏時導航欄高度32px 獲取當前屏幕狀態:UIApplication.sharedApplication().statusBarOrientation轉載于:https://www.cnblogs.com/iOSboyYang/p/5328886.html

libcurl庫的安裝和使用

libcurl簡介: libcurl是一個跨平臺的網絡協議庫,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 協議。libcurl同樣支持HTTPS證書授權,HTTP POST, HTTP PUT, FTP 上傳, HTTP基本表單上傳,代理,cookies,和用戶認證。li…

android 微信縮小通話界面_安卓如何做出微信那樣的界面仿微信“我”的界面2/5...

本系列目標通過安卓編程仿寫微信“我”的界面,讓大家也能做出類似微信界面.效果圖如下:本文目標做出支付部分(其他部分在后續文章中逐步分享).效果圖如下:實現方案通過截圖工具或者下載一張微信支付照片,放到工程的src/main/res/drawable目錄下,命名為pay.png;同樣獲取一張向右…

Shell腳本中函數的定義和調用筆記

Shell腳本函數的作用主要是把一些可以通用的功能封裝起來、避免腳本中出現大量重復的腳本代碼,同時可以大大增強腳本的可讀性、和可維護性。Shell函數定義的語法格式:function FUNCTION_NAME(){command1command2command3}也可以省略function 關鍵字FUNCT…

opensll、libcurl庫安裝的使用,樹莓派CSI攝像頭的配置,樹莓派調用智能API平臺實現人臉識別、樹莓派配置中文環境

接著上一節人工智能翔云平臺介紹: 人工智能OCR識別: OCR 是英文Optical Character Recognition的縮寫,意思是光學字符識別,也可簡單地稱為文字識別,是文字自動輸入的一種方法。它通過 掃描 和攝像等光學輸入方式獲取紙…

apache 設置禁止訪問某些文件或目錄

【apache配置禁止訪問】1. 禁止訪問某些文件/目錄增加Files選項來控制&#xff0c;比如要不允許訪問 .inc 擴展名的文件&#xff0c;保護php類庫&#xff1a;<Files ~ "\.inc$">Order allow,denyDeny from all</Files>禁止訪問某些指定的目錄&#xff1a…