影響ActiveMQ效能的幾個重要因素

2021-06-27 15:07:00 字數 925 閱讀 9956

分類: jms/mq

2012-12-01 13:45

1793人閱讀收藏 

舉報 queue

1、send/dispatch async 影響非常大

同步非同步的傳送和投遞,都非常影響吞吐量。另外,systemusage和pfc流控對同步傳送有直接影響。

2、not transacted 去掉了記錄redo日誌

3、auto_ack/optim_ack 優化確認

減少互動次數

4、non-persistence 持久化訊息,跟下面幾點有關

持久化和非持久化,也是數量級的影響,畢竟為了提高可靠性,使用資料庫或檔案來存訊息,開銷非常大。

5、pendingqueuepolicy/vmqueuecursor 決定了訊息儲存+傳送模式,影響很大

記憶體最快,檔案和jdbc方式更安全,但是非常慢。。。

6、producerflowcontrol/memorylimit  可能會直接block掉producer

vmcursor+非持久時,直接變成乙個記憶體mq,為了不爆掉jvm,在訊息積壓到指定數量的時候,pfc會阻止生產訊息。

7、fast/slow consumer      決定了訊息處理模式

跟上面幾點有關係。

8、在connection或connectionfactory上關閉掉 copymessageonsend

根據jms規範,訊息是不可變的。send的時候,會自動的新增一些屬性。有時候,可能會重用,或者多執行緒處理。為了不影響訊息的不可變性,傳送的時候,先複製乙份,這樣,傳送時處理的訊息物件和你的**持有的訊息物件,是兩個不同物件了。相互之間就不會互相影響了。

一般情況下,這個選項可以關閉,從而獲得一定的效能提公升。

9、consumer端,獲取訊息時候的prefetchsize設定。 一定範圍情況下,一次預獲取越大,總體效能越好。

影響HBase insert效能的幾個因素

在使用hbase put api的時候,有幾個會影響效能的因素。1.put list size hbase的put支援單條插入,也支援批量插入。2.autoflush autoflush指的是在每次呼叫hbase的put操作,是否提交到hbase server。預設是true,每次會提交。如果此時是...

try catch 的效能影響

現象 大量try.catch.newtonsoft.json序列化速度明顯降低 9000ms 250ms 疑問 大量try.catch.影響效能?主要效能消耗在於跳轉到catch塊?準則 不要將try.catch.用於處理 邏輯跳轉,僅用於常規異常處理 不要濫用try.catch.總結 try.ca...

影響hashMap效能的因素

首 先算得key得hashcode值,然後跟陣列的長度 1做一次 與 運算 看上去很簡單,其實比較有玄機。比如陣列的長度是2的4次方,那麼hashcode就會和2的4次方 1做 與 運算。很多人都有這個疑問,為什麼hashmap的陣列初始化大小都是2的次方大小時,hashmap 的效率最高,我以2的...