更新時(shí)間:2023-03-15 來源:黑馬程序員 瀏覽量:
Netty 是一個(gè)異步的、基于事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,用于快速開發(fā)可維護(hù)、高性能的網(wǎng)絡(luò)服務(wù)器和客戶端。Netty 在 Java 網(wǎng)絡(luò)應(yīng)用框架中的地位就好比:Spring 框架在 JavaEE 開發(fā)中的地位。以下的框架都使用了 Netty,因?yàn)樗鼈冇芯W(wǎng)絡(luò)通信需求!
? Cassandra - nosql 數(shù)據(jù)庫
? Spark - 大數(shù)據(jù)分布式計(jì)算框架
? Hadoop - 大數(shù)據(jù)分布式存儲(chǔ)框架
? RocketMQ - ali 開源的消息隊(duì)列
? ElasticSearch - 搜索引擎
? gRPC - rpc 框架
? Dubbo - rpc 框架
Spring 5.x - flux api 完全拋棄了 tomcat ,使用 netty 作為服務(wù)器端
Zookeeper - 分布式協(xié)調(diào)框架
Netty vs NIO,工作量大,bug 多,需要自己構(gòu)建協(xié)議,解決 TCP 傳輸問題,如粘包、半包。epoll 空輪詢導(dǎo)致 CPU 100%, 對(duì) API 進(jìn)行增強(qiáng),使之更易用,如 FastThreadLocal => ThreadLocal,ByteBuf => ByteBuffer
Netty vs 其它網(wǎng)絡(luò)應(yīng)用框架
Mina 由 apache 維護(hù),將來 3.x 版本可能會(huì)有較大重構(gòu),破壞 API 向下兼容性,Netty 的開發(fā)迭代更迅速,API 更簡潔、文檔更優(yōu)秀。
久經(jīng)考驗(yàn),16年,Netty 版本
? 2.x 2004
? 3.x 2008
? 4.x 2013
? 5.x 已廢棄(沒有明顯的性能提升,維護(hù)成本高)