sponsored links

smart-socket v1.5.13 釋出,外掛全家桶迎來新成員

smart-socket v1.5.13 版本除了一些細節最佳化,最大的亮點莫過於外掛全家桶迎來了一位重磅級新成員:RateLimiterPlugin(流控外掛)。

流控,在很多場景下是一項剛性需求。目前市面上所見的絕大多數流控方案都是 QPS 維度的,即限制單位時間內的請求/響應次數。而 smart-socket 本次釋出的流控外掛卻比較與眾不同,我們提供的是針對位元組碼的流量控制能力,實現了網路上下行流量的限速。

產生出研發流控外掛的想法緣於一次線上故障,當時某個業務的網路 IO 流量劇增,消耗了過多資源以致其他請求出現嚴重超時。由此使我意識到基於 QPS 限流策略的侷限性,不僅僅是高併發會衝擊系統的穩定性,低併發高流量也是個不容忽視的存在。尤其在分散式環境下,單節點的故障會引發一系列連鎖反應。而要防止個別網路通道無節制的消耗 IO 資源,則需要將流量限速在安全範圍內。

流控功能的實現原理是透過代理技術攔截了 Java 通訊物件 AsynchronousSocketChannel 的 read/write 方法,識別出超負荷的 IO 任務並延遲至一下個視窗期執行(具體實現參見倉庫原始碼)。

啟用該外掛延續著 smart-socket 外掛一貫的開箱即用的風格,只需在構造方法中指定 read 和 write 的流控值(單位:byte),輸入 0 表示不限流。

processor.addPlugin(new RateLimiterPlugin<>(1024 * 1024, 1024 * 1024))

執行效果如下圖:(10個客戶端傳送訊息,每隔5秒鐘列印一次)

完整示例程式碼 RateLimiterDemo 可從 smart-socket 倉庫中獲取。

更新內容

  1. 最佳化 WriteBuffer#write 演算法。
  2. 調整底層IO排程執行緒名。
  3. 移除底層預設的 tcoNoDelay 設定。
  4. 新增流控外掛:RateLimiterPlugin。

maven座標

<dependency>
    <groupId>org.smartboot.socketgroupId>
    <artifactId>aio-coreartifactId>
    <version>1.5.13version>
dependency>

最後

開源不易,若覺得該專案還不錯,請為它點個 Star 。倉庫地址:https://gitee.com/smartboot/smart-socket

分類: 娛樂
時間: 2021-10-24

相關文章

滬媒:周琦還沒意識到,他恐將永遠無法再回CBA

滬媒:周琦還沒意識到,他恐將永遠無法再回CBA
本賽季的CBA休賽期,上演了一出大腦劇.周琦與新疆隊之間的過招簡直比電影還精彩!最後,下賽季的新疆隊失去了周琦,而周琦也迫不得已遠走澳洲,最後的結局是兩敗俱傷.但周琦只有25歲,職業生涯還很長,下賽季 ...

抗戰勝利76週年丨烽火盧溝橋:永遠不能忘卻的炮聲

抗戰勝利76週年丨烽火盧溝橋:永遠不能忘卻的炮聲
腳下是歷經風雨的凹凸石塊,身旁是目睹歷史風雲的獅雕石刻--站在盧溝橋中央,遠望宛平城.近看曉月湖,84年前的槍炮聲響起之前,一切彷彿如現在這般安靜. 1937年7月7日深夜,日本侵略軍在星光黯淡.萬籟 ...

“九一八”事變90週年:這一天,我們永遠銘記

“九一八”事變90週年:這一天,我們永遠銘記
1931-2021 歷史再次刻印下新的時間座標 90年前那刻骨銘心的屈辱 卻一刻也不曾忘.不敢忘.不能忘! 瀋陽"九一八"歷史博物館門前的殘歷碑 侵華戰爭 蓄謀已久 生靈塗炭 血染 ...

76年前的今天,日本侵略者宣佈無條件投降!告訴孩子,這一天值得銘記

76年前的今天,日本侵略者宣佈無條件投降!告訴孩子,這一天值得銘記
76年前的今天 是億萬中國人民 永遠銘記的日子 也是全世界熱愛和平的人民 永遠銘記的日子 1945年8月15日 日本電臺播出了裕仁天皇 宣讀的<終戰詔書> 宣佈無條件投降 那一刻 中華兒女 ...

76年前的今天,日本侵略者宣佈無條件投降

76年前的今天,日本侵略者宣佈無條件投降
76年前的今天,是億萬中國人民永遠銘記的日子,也是全世界熱愛和平的人民永遠銘記的日子. 1945年8月15日,日本電臺播出了裕仁天皇宣讀的<終戰詔書>,宣佈日本無條件投降.那一刻,中華兒女 ...

無條件的愛孩子,請這樣對孩子說

無條件的愛孩子,請這樣對孩子說
如何無條件的愛孩子? 無條件的愛就是無條件的接納和愛孩子,能否無條件地愛標誌父母的成熟程度. 父母給予的愛不需要任何回報,與孩子是否乖巧懂事無關,與孩子成績好壞無關,無論如何,都毫無保留的給予他們愛. ...

76年前的今天,日本宣佈無條件投降
來源:襄陽日報 76年前的今天 是億萬中國人民永遠銘記的日子 這一天 日本電臺播出了 裕仁天皇宣讀的<終戰詔書> 宣佈無條件投降 億萬中國人民都記得 日本投降的背後 有著國人多少哀痛與血淚 ...

歷史不容無知!76年了,我們永遠銘記!

歷史不容無知!76年了,我們永遠銘記!
記憶,在血淚洗禮中永恆 精神,在今昔交替間閃耀 今天是8月15日 76年前 1945年8月15日 日本,無條件投降! "日本投降矣!" <大公報>五個大字力透紙背 神州 ...

山河歲月 五月的鮮花MV——紀念日本無條件投降76週年
點選圖片觀看影片 "五月的鮮花開遍了原野,鮮花掩蓋著志士的鮮血,為了挽救這垂危的民族,他們曾頑強地抗戰不歇."76年前的今天--1945年8月15日,日本正式宣佈無條件投降,世界反 ...

永遠放不下的仇?馮小剛鄧超14年再無合作,看他倆11年恩怨情仇

永遠放不下的仇?馮小剛鄧超14年再無合作,看他倆11年恩怨情仇
文/文刀貳 2015年年初,懟天懟地的馮小剛再一次將矛頭指向了綜藝電影,在媒體面前大批痛批. 用他的話來說,這些"五六天拍完的電影"是電影界的"無厘頭商業電影" ...

有些話,永遠不要對孩子說

有些話,永遠不要對孩子說
"良言一句三冬暖,惡語傷人六月寒." 父母的不當言語,不會在孩子身上留下傷疤,但會在他們的心中留下難以抹去的創傷. 作者 | 夏天 昨天,我剛吃完晚飯,就接到姐姐的電話. 姐姐在電 ...

14年前,那個用才華打敗資本黑幕的陳楚生,才是永遠的神

14年前,那個用才華打敗資本黑幕的陳楚生,才是永遠的神
"有沒有人曾告訴你,我很愛你. 有沒有人曾在你日記裡哭泣! 有沒有人曾告訴你,我很在意. 在意這座城市的距離." 不知道大家是否還記得這首歌?在當年風靡全國的那首歌! 沒錯,這正是 ...

中國父母都認為自己是對的,孩子永遠是錯的

中國父母都認為自己是對的,孩子永遠是錯的
中國父母老是喜歡干涉子女的生活習慣,例如:跳槽找工作.別亂花錢.早點結婚(催婚)等.中國父母都有一種不好的習慣,就認為自己講的永遠都是對的,子女如果去跟父母講道理,父母說不過孩子,就認為自己的孩子跟長 ...

普京安保司令佐洛托夫,曾攔截8次刺殺,普京:他永遠不會被收買

普京安保司令佐洛托夫,曾攔截8次刺殺,普京:他永遠不會被收買
2000年,俄羅斯總理普京繼任葉利欽,成為俄羅斯的第二位總統,並且幾度連任,開始了往後長達二十年的鐵腕統治. 在整個世界,國家總統都是一個高危職業,而普通人也不例外. 在他的統治生涯裡,最不缺的就是危 ...

美方強調永遠不想與中國開戰,是什麼讓他們感到了畏懼?

美方強調永遠不想與中國開戰,是什麼讓他們感到了畏懼?
美國參聯會副主席約翰·海頓13日說,"我們的目標應該是永遠不與中國開戰,永遠不與俄羅斯開戰.因為對於我們這些國家來說,那將是可怕的一天."就在幾天前,美國退役海軍上將.太平洋司令部 ...

中美之間必有一戰?美軍上將:美國的目標應該是永遠不與中國開戰

中美之間必有一戰?美軍上將:美國的目標應該是永遠不與中國開戰
據環球網報道,美國參謀長聯席會議副主席海騰上將在最近召開的一次討論會上表示,雖然外界輿論一直認為中美或美俄之間必定爆發戰爭,但美國的目標應該是永遠不與中國以及俄羅斯開戰,因為這樣規模的戰爭將會毀滅全世 ...

蕾哈娜也追星!她說過自己永遠是詹姆斯球迷!跟詹姆斯有合作

蕾哈娜也追星!她說過自己永遠是詹姆斯球迷!跟詹姆斯有合作
原創/氧氣是個地鐵 蕾哈娜是世界上最成功的女歌手,如果沒有之一的話.在谷歌2004年到2020年世界範圍內的女歌手影響力榜上,高居榜首.不過對於沒怎麼關注歌手本身的籃球愛好者來說,蕾哈娜的另一個身份比 ...

刮目相看:每個人都具有可塑性,永遠不要低估自己的潛力和潛能

刮目相看:每個人都具有可塑性,永遠不要低估自己的潛力和潛能
文/唐若 唐若心學原創作品,違者必究 今天和大家分享成語故事叫做刮目相看,這個故事是發生在三國時期.呂蒙是吳國有名的大將軍,因為家裡很窮,沒有辦法讓他念書,所以,常常被人笑說吳國的呂蒙只不過是會打仗而 ...

美空軍上將:永遠不要和解放軍開戰,美國人到底懼怕中國什麼?

美空軍上將:永遠不要和解放軍開戰,美國人到底懼怕中國什麼?
美空軍上將約翰·海騰稱,永遠不要和解放軍開戰,此話一石激起千層浪.約翰·海騰上將還是美國參聯會的副主席,可以說是位高權重,只能說約翰·海騰上將清楚地認識到解放軍的戰鬥力到底有多強.並且也認識到如果美國 ...

在量子計算機中造出的奇特“時間晶體”或將永遠改變物理學

在量子計算機中造出的奇特“時間晶體”或將永遠改變物理學
研究人員最近利用量子計算機創造出了一種全新物態--時間晶體.這些時間晶體在谷歌的Sycamore晶片中創造而成,儲存在量子低溫恆溫器中. 時間晶體可以在兩種狀態之間永遠迴圈下去,而不損失任何能量,因此 ...