netty 源碼,NettyMina (轉)

 2023-11-22 阅读 24 评论 0

摘要:2019獨角獸企業重金招聘Python工程師標準>>> mina比netty出現的早,都是Trustin Lee的作品; mina將內核和一些特性的聯系過于緊密,使得用戶在不需要這些特性的時候無法脫離,相比下性能會有所下降;netty解決了這個設計問題;

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

mina比netty出現的早,都是Trustin Lee的作品; mina將內核和一些特性的聯系過于緊密,使得用戶在不需要這些特性的時候無法脫離,相比下性能會有所下降;netty解決了這個設計問題; netty的文檔更清晰,很多mina的特性在netty里都有; netty更新周期更短,新版本的發布比較快; 它們的架構差別不大,mina靠apache生存,而netty靠jboss,和jboss的結合度非常高,netty有對google protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi); netty比mina使用起來更簡單,netty里你可以自定義的處理upstream events 或/和 downstream events,可以使用decoder和encoder來解碼和編碼發送內容; netty和mina在處理UDP時有一些不同,netty將UDP無連接的特性暴露出來;而mina對UDP進行了高級層次的抽象,可以把UDP當成"面向連接"的協議,而要netty做到這一點比較困難。mina把TCP和UDP一樣當"有連接"的處理,一個UDP請求會按照address產生一個新的 IoSession,過期時間是1分鐘,這樣做的好處是顯然的,但是對于有性能要求的項目就不好了,對一個無連接的東西cache 1分鐘,大多數時候可能是白cache了,做無用功。 Mina這樣做可能還有個初衷是連續解碼用的,比如一個包太大了,分了兩次傳輸;但是這樣的設計應該是udp大忌了。 mina是heapbytebuffer,每次bytebuffer.allocate去分配。同時根據『滿則增大一倍,兩次一半則縮減一半』 netty是directbytebuffer,同時應該buffercache的存在,在buffersize不變的情況下,重復使用。分配大小是依賴buffersize分配表,有一套預測算法來分配。快速應對增大,而緩慢shrink

轉載于:https://my.oschina.net/beloser/blog/178831

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/185235.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息