「引入 sentinel 帶來的效能損耗非常小,只有在業務單機量級超過 25w qps 的時候才會有一些顯著的影響(5%~10% 左右),單機 qps 不太大的時候損耗幾乎可以忽略不計。」
這是官方文件寫的一段話,那麼效能到底如何呢?本篇我們回顧 sentinel 的原始碼,看看 sentinel 在效能方面所做出的努力,最後使用 jmh 做個簡單的基準測試,看看 sentinel 表現如何,在此之前也會詳細介紹 jmh 的使用。
滑動視窗指標資料統計
sentinel 統計指標資料使用的是滑動視窗:時間視窗+bucket,通過迴圈復用 bucket 以減少 bucket 的建立和銷毀。在統計指標資料時,利用當前時間戳定位 bucket,使用 longadder 統計時間視窗內的請求成功數、失敗數、總耗時等指標資料優化了併發鎖。sentinel 通過定時任務遞增時間戳以獲取當前時間戳,避免了每次獲取時間戳都使用 system 獲取的效能消耗。
使用 map 而不使用 concurrentmap
sentinel 中隨處可見的加鎖重新建立 map,例如:
if (chain == null) {
synchronized (lock) {
if (chain == null) {
SCWCD之路 結束語
寫到這裡,整個專題終於告一段落了。總的來說,scwcd的考試比scjp要更加簡單,因為它要求的難度不高,只是內容比較多且雜了點。很多人問我說考這些認證有什麼用,會不會加工資?其實我想說的是認證並不難考,只要認真複習,把一些基本原理弄清楚,再做一些管方提供的洋題,要考過十分容易,而且最主要的是你在整個...
軟考結束語?
昨天結束了歷時兩月個半月的軟考階段。以下簡述一點方法和感受。考試複習方法。1.給自己制定個大致的學習計畫,不一定嚴格執行,但有它心裡清楚自己有多少工作要做。2.複習階段要邊學習邊總結,邊做題邊總結,不要等把事情都做完了再總結。一口吃撐了,第二口吃著就費勁了!3.對於軟考最好是多做真題,模擬題適當做 ...
英語信件結束語
這些信件結尾在語氣上略有不同。我會將其按照正式程度排序,越往後越正式。love 個人性質。用於愛人,家庭或者親密的友人。cheers 隨和性質。用於朋友。如果你希望看起來平和一點,也可以用於同事,但有不太正式,顯得不專業的風險。take care 隨和,也是用於朋友的。thanks or thank...