`
littcai
  • 浏览: 248205 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

MINA vs. QuickServer

阅读更多

作者:fisher

First for all, QuickServer is licensed as LGPL, and MINA as ASL.

从我个人角度而言,去年看过QuickServer的源码,我在项目中采用的每一个框架或类库都会做综合评价,通常不会是一个原因导致我采用或没有采用某个库或框架,具体最后没有采用QuickServer的原因忘记了,但是当时给我的总体感觉是,QuickServer虽然很方便,但不会让我在架构上得到新的好处。而它最大的优点则是,支持JDK1.3(如果没记错的话),另外就是License的问题

下面看一看来自TrusinLee的评论:

Thank for the information about another network application framework.  I found a few differences:

Ø         QuickServer supports blocking mode.  (MINA supports only non-blocking mode, but you can make your operation block at your will.)

Ø         QuickServer provides GUI-based admin.  (MINA doesn't have one yet, but will have full JMX support soon, which is a standard.)

Ø         QuickServer uses java.util.logging.  (MINA uses SLF4J, which is a safe replacement of commons-logging.)

Ø         QuickServer uses its own XML settings.  (MINA provides Spring framework integration instead.)

Ø         QuickServer can specify maximum number of clients allowed.  (MINA can do this using a filter, but not implemented by default.  Of course, this will be implemented as an overload prevention filter.)

Ø         QuickServer team has one crew.  (MINA has three crews.)

Ø         QuickServer project started in 2003.  (MINA started in 2005.)

Ø         QuickServer has a difference event handler interface from MINA.  (You'll have to compare it by yourself.  IMHO, MINA has one simple enough handler which covers all QuickServer provides.)

Ø         QuickServer doesn't support UDP at all.  (MINA does)

Ø         QuickServer doesn't support client-side API at all.  (MINA does)

Ø         QuickServer integrated authentication and text protocol in its core.  (MINA didn't and they are considered as a cross-cutting concern that a filter should take care of.  IMHO, MINA is more extensible here.)



Cindy2.x比MINA性能好是可以预见的,原因在于MINA提供的ByteBuffer和FilterChain。

Cindy3.x源代码我没有看,所以不好评价。

关于MINA的效率问题,在MINA的maillist中也被提出,似乎有相应的issue正要被加入到它的Issue Tracker中。

Cindy3.x才刚刚开始,我认为多给Crmky一些时间,他一定可以将架构设计的更好。

MINA在设计上也有少许问题,他的IoFilterChain将FilterManager和FilterChain合而为一,在看其代码的时候会觉得很乱。另外,为了保证包的顺序,一个IoSession上的Handler在上一次read调用没有返回前,是不会被再次调用的。我认为MINA的基础架构在1.0和1.1版本之间还会变化,以适应新加入的configuration方式。另外,MINA会产生一些内存垃圾,我用profiler检查过MINA,似乎是SocketIoProcessor中的某个计数器在不停的产生2byte的什么东东(记不太情了),不过似乎Trustin也注意到这个问题了,最近他说会在1.0release之后改善效率和内存的问题。

你可以到Crmky的blog上发帖子,看看他是否愿意提供一个Cindy3.X和MINA的对比。

总体来说,java的通讯框架设计并不特别注重效率,而追求架构上的优雅,当然,这也和java中本来能够进行效率调优的手段就不多有关系,如果真要优化,可能还是需要使用JDK5.0以上提供的高效的内存操作,另外,据说在Linxu2.6内核以后,Mustang的NIO使用了Linux的epoll来实现select(),也许会对目前的IO效率有所帮助。

分享到:
评论

相关推荐

    mina2.x开发示例

    **Mina2.x开发示例** Apache Mina是一个开源项目,提供了一个高度可扩展的网络通信框架,适用于各种协议,如TCP、UDP和HTTP。它主要用于简化开发高性能、高并发的网络应用程序,如服务器和客户端。在Mina2.x版本中...

    mina函数.xls

    mina函数.xls

    MinaDemo.zip SpringBoot集成Socket通讯

    @Value("${mina.port:8080}") private int port; @Bean public ServerBootstrap serverBootstrap() { ServerBootstrap bootstrap = new ServerBootstrap(); EventLoopGroup bossGroup = new ...

    Apache.Mina.Server.2.0.中文参考手册_李海峰

    ### Apache Mina Server 2.0 中文参考手册知识点概览 #### 一、Mina简介 Apache Mina Server是一款高性能、易于使用的网络通信框架,主要用于构建基于TCP/IP或UDP/IP协议的应用程序。该框架的核心优势在于其能够...

    websocket+java服务器(mina)

    Mina(Java Multithreaded Network Application Framework)是一个用Java编写的网络应用框架,它提供了高度可扩展性和性能,适用于多种网络协议,包括TCP和UDP。Mina为开发者提供了一种抽象层,简化了网络编程的复杂...

    mina.zip内涵所有mina所需jar包

    描述中重复提到"mina.jar 包,内涵mina所需的所有jar包,解压即可,测试可用",意味着这个"mina.jar"可能是一个集成了所有依赖的单一文件,或者是一个包含所有依赖的目录结构。这种打包方式便于用户快速部署和测试,...

    Apache Mina Demo.zip

    本工程用于研究Apache Mina技术 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 本工程运行步骤: 1、运行StartMinaServer类 2、运行StartMinaClient类

    apache-mina-2.0.4.rar_apache mina_mina

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个"apache-mina-2.0.4.rar"压缩包包含的是Apache Mina 2.0.4版本的源代码,是深入理解和定制Mina的...

    mina core 包

    org.apache.mina.core.buffer.IoBuffer mina core 包

    高性能Java网络框架 MINA.7z

    MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。MINA由Apache软件基金会开发,并且是其顶级项目之一...

    Apache-Mina教程.pdf

    mina框架介绍、主要接口介绍:IoService、IoAcceptor、IoConnector、IoSession、IoSessionConfig、IoHandler、IoBuffer、IoFuture等;信息分段处理demo、多路分离编解码demo、与Spring/JMX集成示例

    mina入门例子

    import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.logging....

    Mina 1.1.7 示例源码(apache.mina.example)

    这个压缩包"apache.mina.example"包含了一系列的示例项目,可以帮助开发者快速上手并深入理解Mina。 1. **Mina框架概述** Mina(Minimum Asynchronous Network)是一个基于Java的网络通信库,它提供了简单、高性能...

    Mina+Socket通信

    import org.apache.mina.core.service.DefaultTransportMetadata; import org.apache.mina.core.service.TransportMetadata; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina....

    Apache_MINA.rar

    3. **MINA.pps** 和 **Mina.ppt**、**Mina (1).ppt** 是可能的演示文稿,涵盖了MINA的使用示例和最佳实践。 通过学习这些资料,开发者可以更好地理解和应用Apache MINA框架,构建出高效、可扩展的网络应用。

    Apache MINA 2.0 用户指南( 缺第一章节)

    import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class EchoServer { private IoAcceptor acceptor = new ...

    Apache-Mina-2.rar_apache mina_java mina_mina_mina-core-1.1.3

    Apache Mina是一个强大的开源项目,专门设计用于构建网络应用程序。这个框架的核心目标是提供一个抽象层,使得开发者能够专注于业务逻辑,而不是底层网络通信的复杂性。标题中的"Apache-Mina-2.rar"和"mina-mina-...

    Mina-1.1.7.jar

    《Mina-1.1.7.jar:Java服务器开源框架的异步并发之力》 Mina,全称为Apache Mina,是一个用Java编写的高性能网络通信框架,它为开发网络应用提供了一种简单且强大的抽象层。Mina的核心特性在于其异步事件驱动的...

    mina2核心框架

    《MINA2核心框架:构建高性能网络应用》 MINA(Java Multithreaded Network Application Framework)是一个由Apache软件基金会开发的开源网络通信框架,主要应用于构建高性能、高可用性的网络服务。MINA2作为其最新...

    mina连接 mina心跳连接 mina断线重连

    Apache Mina是一个开源的网络通信框架,常用于构建高性能、高效率的服务端应用程序,尤其在Java平台上。在本文中,我们将深入探讨Mina的核心概念,包括连接管理、心跳机制以及断线重连策略。 首先,让我们理解"Mina...

Global site tag (gtag.js) - Google Analytics