天天看點

Mina和Jetty,誰先誰後?

這兩個都是有Trustin Lee參與的架構,而且功能類似,隻是Mina目前Github活躍度不高,Netty即将進入5.0版本,但是仍然要說一下,Mina出現是為了改進Netty 2.0版本的缺點。

是以,Mina出現在Netty之後。

有人想說Netty比Mina好,甚至以Netty是Mina的更新版為由來強調,這兒記錄一下:

http://mina.apache.org/mina-project/road-map.html

這是Trustin Lee叙說的Mina創意之初。

純屬無聊,記錄一下:

Genesis of MINA

by Trustin Lee

In June 2004, I released a network application framework, 'Netty2'. It was the first network application framework that provides event-based architecture in Java community. It attracted network application programmers because of its simplicity and ease of use. As the Netty2 community matured, its problems also arose. Netty2 didn't work fine with text protocols and had a critical architectural flaw that prevents users from using it for applications with many concurrent clients.

Quite a large amount of information was collected about what users like about Netty2 and what improvements they want from it for 6 months. It was clear they like its ease of use and unit-testability. They wanted support for UDP/IP and text protocols. I had to invent a cleaner, more flexible, and more extensible API so that it is easy to learn yet full-featured.

Meanwhile around 2003 at Apache Directory, Alex Karasulu was wrestling with a network application framework he developed based on the [Matt Welsh's SEDA (Staged Event Driven Architecture)|http://www.eecs.harvard.edu/~mdw/proj/seda/]. After several iterations Alex realized it was very difficult to manage, and started to research other network application frameworks looking for a replacement. He wanted something for Java that would scale like SEDA yet was simple to use like [ACE|http://www.cs.wustl.edu/~schmidt/ACE.html]. Alex encountered Netty2 at [gleamynode.net|http://gleamynode.net/] and contacted me asking if I wanted to work with him on a new network application framework.

In September 2004, I formally joined the Apache Directory team. Alex and I decided to mix concepts between the two architectures to create a new network application framework. We exchanged various ideas to extract the strengths of both legacy frameworks to ultimately come up with what is today's 'MINA'.

Since then MINA became the primary network application framework used by the Apache Directory project for the various implemented by Apache Directory Server (ApacheDS). Several complex protocols in ApacheDS are implemented with MINA: LDAP, Kerberos, DNS and NTP.

曾經據說Tomcat也要用Mina架構改寫一下底層,後來估計因為Reactive概念盛起,而被放棄了吧。

目前Netty之是以有蓋過Mina的趨勢,也在于Reactive概念的興起吧。這種響應式、被動式網絡處理機制,或許将是未來網絡應用的基礎機制。

版權聲明:本文為CSDN部落客「weixin_34272308」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34272308/article/details/91651671