`

java 应用服务框架mina 和 netty应用案例都有那些,两者该怎么选择?

 
阅读更多
原文地址:http://www.zhihu.com/question/20527458


新项目需要搭建一个纯java实现的的服务,因时间紧张决定先采用开源的框架先开发。目前了解的有mina和netty两个框架比较符合预期,查看了资料依然不好做出决定:
mina比netty出现的早,都是Trustin Lee的作品;
mina将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比下性能会有所下降;netty解决了这个设计问题;
netty的文档更清晰,很多mina的特性在netty里都有;
netty更新周期更短,新版本的发布比较快;
它们的架构差别不大,mina靠apache生存,而netty靠jboss,和jboss的结合度非常高,netty有对google
protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi);
netty比mina使用起来更简单,netty里你可以自定义的处理upstream events
或/和 downstream events,可以使用decoder和encoder来解码和编码发送内容;
netty和mina在处理UDP时有一些不同,netty将UDP无连接的特性暴露出来;而mina对UDP进行了高级层次的抽象,可以把UDP当成"面向连接"的协议,而要netty做到这一点比较困难。mina把TCP和UDP一样当"有连接"的处理,一个UDP请求会按照address产生一个新的
IoSession,过期时间是1分钟,这样做的好处是显然的,但是对于有性能要求的项目就不好了,对一个无连接的东西cache
1分钟,大多数时候可能是白cache了,做无用功。
Mina这样做可能还有个初衷是连续解码用的,比如一个包太大了,分了两次传输;但是这样的设计应该是udp大忌了。
分享到:
评论

相关推荐

    Java学习之IO总结及mina和netty

    通过学习这些内容,开发者可以更好地理解和应用Java IO,以及如何利用Mina和Netty来构建高效、可扩展的网络应用。这两个框架极大地简化了网络编程,使得开发者可以专注于业务逻辑,而不用过多关注底层网络通信的实现...

    MINA2与Netty4比较分析

    Mina2与Netty4是两种非常流行的网络编程框架,它们都用于构建高性能的网络服务器和客户端。由于它们都是基于Java NIO实现,因此有很多共同点,但同时也存在一些重要的差异。接下来将根据标题和描述的要求详细分析...

    MINA、Netty、Twisted放在一起学

    MINA、Netty和Twisted是三个备受瞩目的开源通讯框架,它们各自拥有独特的特性和优势,广泛应用于高性能、高并发的网络应用中。本文将结合一系列的学习文档,深入探讨这三大框架的使用方法和技术细节。 首先,我们来...

    Java Netty 分布式开发 框架

    Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端,是基于Java NIO的异步非阻塞的网络编程框架。Netty在内部实现了自己的线程模型,支持多种协议,包括UDP、TCP、...

    java mina框架全套

    Java Mina框架是一款高度可扩展且高性能的网络应用开发框架,专为开发网络服务和协议处理应用程序而设计。它提供了一种简洁、高效的API,使得开发者可以轻松地创建基于TCP/IP和UDP/IP协议的服务器和客户端应用。Mina...

    Java springboot 整合mina 框架,nio通讯基础教程,mina框架基础教程.zip

    Java SpringBoot 整合Mina框架,涉及到的核心技术主要包括Java NIO(非阻塞I/O)、Mina框架以及SpringBoot的集成应用。本教程旨在帮助开发者深入理解和掌握这些技术,并提供了一个可直接使用的基础平台框架。 Java ...

    java-mina通信框架详解.docx

    Apache Mina是一个强大的网络通信框架,专为基于TCP/IP和UDP/IP协议栈的应用设计。它提供了JAVA对象的序列化和虚拟机内部通信的功能,使得开发者能够迅速构建高性能、高可扩展性的网络应用。Mina的核心特性是其事件...

    NIO Netty框架

    Netty和Mina都是Java开发的高性能网络框架,供开发者快速构建高性能的网络应用程序。下面是关于Netty和Mina的详细知识点: 开发文档和实现 Netty的开发文档比Mina丰富,提供了更多的示例代码和开发指南。Netty的...

    java mina 通讯框架

    java mina 通讯框架

    高性能Java网络框架 MINA

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,专为开发基于TCP/IP和UDP/IP协议的应用程序而设计。MINA的目标是简化网络编程,使得开发者...

    websocket+java服务器(mina)

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

    基于Java和Mina/Netty的Socket学习项目设计源码

    该项目为基于Java语言的Socket编程学习项目,集成Mina和Netty框架,源代码库包含76个文件,其中Java源文件52个,XML配置文件15个,YAML配置文件5个,Git忽略文件1个,LICENSE文件1个,YAML文件1个,Markdown文件1个...

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

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

    JAVA 通信框架MINA(包含心跳)

    Apache MINA 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 可以作为开发网络应用...

    Java视频教程 Java游戏服务器端开发 Netty NIO AIO Mina视频教程

    jaca视频教程 jaca游戏服务器端开发 Netty NIO AIO Mina视频教程 课程目录: 一、Netty快速入门教程 01、第一课NIO 02、第二课netty服务端 03、第三课netty客户端 04、第四课netty线程模型源码分析(一) 05、...

    JAVA mina 框架源码

    JAVA Mina框架是一款高度可扩展、高性能的网络应用开发框架,专为Java平台设计。它提供了丰富的网络通信API,使得开发者能够轻松地构建基于TCP/IP、UDP/IP以及其他协议的服务器和客户端应用程序。Mina框架的核心设计...

Global site tag (gtag.js) - Google Analytics