回覆列表
  • 1 # H哥聊Java

    Mina和Netty都是Java領域高效能和高可伸縮性的網路應用框架,用以快速開發高效能、高可靠性的網路伺服器和客戶端程式。MINA是 Apache 組織的一個專案,Netty是由JBOSS提供的一個java開源框架,Mina的歷史比Netty要早,都是Trustin Lee的作品,之前看過一篇文章專門講為什麼要開發Netty,也就是Mina到Netty的演化歷史,有興趣的可以百度一下。

    目前正在使用 MINA 的軟體包括有:Apache Directory Project、AsyncWeb、ObjectRADIUS、RED5 Server、AMQP、Openfire 等等。Netty已經得到成百上千的商業/商用專案驗證,如Hadoop的RPC框架Avro、RocketMQ以及主流的分散式通訊框架Dubbo等等。

    Netty與Mina相比具有哪些優勢呢?

    1、Netty更晚,相比Mina更加穩定,效能更好;

    2、Mina將核心和一些特性的聯絡過於緊密,使得使用者在不需要這些特性的時候無法脫離,相比下效能會有所下降,Netty解決了這個設計問題;

    3、Netty的文件更加清晰,很多Mina的特性在Netty裡都有;

    4、Netty更新週期更短,新版本的釋出比較快;

    5、它們的架構差別不大,Mina靠apache生存,而Netty靠jboss,和jboss的結合度非常高,Netty有對google protocal buf的支援,有更完整的ioc容器支援(spring、guice、jbossmc和osgi);

    6、Netty比Mina使用起來更簡單,Netty裡你可以自定義的處理upstream events和downstream events,可以使用decoder和encoder來解碼和編碼傳送內容;

    7、Netty和Mina在處理UDP時有一些不同,Netty將UDP無連線的特性暴露出來;而Mina對UDP進行了高階層次的抽象,可以把UDP當成"面向連線"的協議,而要Netty做到這一點比較困難。

    目前我們公司網路通訊這塊也是用的Netty,你只需要考慮協議的編碼解碼問題,對於網路連線、心跳機制等問題都有Netty框架來做,而且Netty預設對一些常用的協議給予了實現。

  • 中秋節和大豐收的關聯?
  • 人工智慧專業好學習嗎?