Netty系列之Netty 服务端创建
1.1. 原生NIO類庫的復雜性
在開始本文之前,我先講一件自己親身經歷的事:大約在2011年的時候,周邊的兩個業務團隊同時進行新版本開發,他們都需要基于NIO非阻塞特性構建高性能、異步和高可靠性的底層通信框架。
當時兩個項目組的設計師都咨詢了我的意見,在了解了兩個項目團隊的NIO編程經驗和現狀之后,我建議他們都使用Netty構建業務通信框架。令人遺憾的是其中1個項目組并沒有按照我的建議做,而是選擇直接基于JDK的NIO類庫構建自己的通信框架。在他們看來,構建業務層的NIO通信框架并不是件難事,即便當前他們還缺乏相關經驗。
兩個多月過去之后,自研NIO框架團隊的通信框架始終無法穩定的工作,他們頻繁遭遇客戶端斷連、句柄泄露和消息丟失等問題。項目的進度出現了嚴重的延遲;形成鮮明對比的是,另一個團隊由于基于Netty研發,在通信框架上節省了大量的人力和時間,加之Netty自身的可靠性和穩定性非常好,他們的項目進展非常順利。
這兩個項目組的不同遭遇告訴我們:開發高質量的NIO程序并不是一件簡單的事情,除去NIO類庫的固有復雜性和Bug,作為NIO服務端,需要能夠處理網絡的閃斷、客戶端的重連、安全認證和消息的編解碼、半包處理等。如果沒有足夠的NIO編程經驗積累,自研NIO框架往往需要半年甚至數年的時間才能最終穩定下來,這種成本即便對一個大公司而言也是個嚴重的挑戰。
本文轉自jiahuafu博客園博客,原文鏈接http://www.cnblogs.com/jiahuafu/p/4276609.html如需轉載請自行聯系原作者
jiahuafu
總結
以上是生活随笔為你收集整理的Netty系列之Netty 服务端创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS集成opencv编译C++项目遇到的
- 下一篇: 在CentOS7上配置Open vSwi