`
江南白衣
  • 浏览: 550878 次
  • 来自: 广州
社区版块
存档分类
最新评论

设计一个美好的服务器--MINA、CXF、Mule、JBoss/Geronimo

阅读更多

作者:江南白衣,原文地址:http://blog.csdn.net/calvinxiu/archive/2007/04/28/1588852.aspx,版权所有,转载请保留

假如冬夜,一个旅人,要开发一个美好的Java后台服务器。

所谓美好,就是要高性能,千万级的用户;高可靠性,failover虽死犹生;高扩展性,跟周围那帮Tuxedo,IBM MQ,WebService的邻居要好好打交道。这是个毫无个性,几乎每次都一样的需求。

Java的开源世界为那些心里不安的设计师们,准备了MINA、CXF、Mule和JBoss/Geronimo。

1、MINA

一个优秀的NIO框架。ACE式的NIO和线程模型,filter chains机制,IO层与protocol层的分离,设计师们可以依赖着开发高性能的自定义协议TCP/IP服务器。

其他框架:Grizzly,脱胎于Glassfish的NIO框架,性能好像比MINA还好一点。

2、CXF

前身就是XFire,一个完整的Web Service Framework:

  • HTTP, JMS, and Jabber 的Transports
  • SOAP, REST and Corba的Binding
  • JAXB 2.0、 XML Beans、Castor and JiBX的DataBinding
  • Support  JAX-WS2.0、CORBA,SCA与JBI

可以部署在:

  • Standalone java server
  • Tomcat or Spring-based 的轻量级容器
  • Weblogic、WebSphere、JBoss的J2EE容器
  • ServiceMix,OpenESB的JBI容器
  • Tuscany的SCA容器

设计师们可以学习它眼花缭乱的机制,从一个Stand alone,ad Hoc协议的服务器,开始支持更多更公共的endpoint,也把自己作为一个Module,部署到更大更稳健的服务器之中。

3、Mule

     作为Enterprise Service Bus (ESB) and Messaging broker,能力就夸张了:

    面对这样一个诱人的ESB方案,看起来比前面的CXF模式更加合适,那如何应用?和业界一样的踌躇。

4、JBoss / Geronimo

     地球人都知道这是两个应用服务器,特别在于,它们都有某种良好的插件机制,将EJB Container,Servlet Container,JMS 模块作为Module部署到服务器中,成为服务器的一种能力。

    JBoss的每个Service就是一个MBean,配合一个service描述文件。Geronimo更是著名的以GBean作为底层架构,跑马圈地的把开源社区的方案集合在repository目录中,玩票式的组成了一个通过J2EE 1.4认证的应用服务器。

    我们自写的服务,可不可以也通过相同的机制,嵌入到JBoss/Geronimo之中,从而直接拥有了应用服务器的其他一切能力,就像把Tomcat建于JBoss  MicroKernel之上,拥有JBossJTA,JBoss Cache能力的JBoss Web?   Labourey说:“Microkernel 是JBoss 的心脏。现在有许多电讯公司使用Microkernel ,用作其服务器应用软件的基础”看来自己并没有发明创造:(

其他服务器:Glassfish

5.世界的其他角落

  • Tuscany SCA 的开源实现,IBM与BEA联手贡献。
  • Esper Event-Driven Application Servers。
  • GridGain 开源网格计算平台,集成Spring,JBoss。

6.小结

    MINA提供了工具,Mule/JBoss/Geronimo提供了容器, CXF/Mule提供了模式,而这些都还仅是Java开源社区的冰山一角,回望那个只有ICE和ACE/TAO的孤寂世界.......

二、Summer Task:

1、入门文档

2、阅读代码
        阅读只是为了发掘文档里没有描述的架构与模式,而其实很多模式在代码里都很显眼,来来去去就那几道斧子,所以有了快速略读的可能,而不是Apache源码阅读式的愚公移山,精卫填海。



 

分享到:
评论
4 楼 zfms 2012-06-03  
我最近在用mina做为热表采集的服务端,心里没底,不知道这种异步方式能否满足开发需求。
3 楼 luyan0711 2007-07-24  
哪位有 MINA 的资料?网上好少啊!
EN的都很少
2 楼 江南白衣 2007-06-19  
是啊,我也看到了这个ppt,多个强力竞争者总是好的。

不过grizzly的代码暂时还和glassfish纠缠甚紧,还不是一个很独立的项目。
1 楼 shaucle 2007-06-19  
javaone 2007里有个讲Grizzly的.

ms Grizzly 比 mina要快很多.(3倍!)
里面讲了不少NIO的用法,
Using NIO SocketChannels and ByteBuffers is easy
Building a high performing and highly scalable application with NIO is easy

http://docs.huihoo.com/javaone/2007/java-se/TS-2992.pdf

另:Geronimo代码比Jboss漂亮多了. ^_^

相关推荐

    mina-core-2.0.0-M1.jar/mina-example-1.0.5.jar

    mina-core-2.0.0-M1.jar/mina-example-1.0.5.jar/slf4j-jdk14-1.6.1.jar/slf4j-log4j12-1.6.1.jar mina 所用jar

    mina-webpack:Mina单文件组件符合Webpack

    mina-webpack Mina单文件组件符合Webpack开始使用我们建议您开始使用 : npm i -g saosao mina my-appcd my-appnpm start 并查看如何与一起使用包含包装 mina-entry-webpack-plugin wxs加载器 手动安装npm i --save-...

    apache-mina-2.0.4架包及源码各pdf学习教程

    apache-mina-2.0.4 架包 源码 学习教程.apache mina是Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序...

    mina2.0 含11个jar包

    mina-core-2.0.0-M6.jar mina-example-2.0.0-M6.jar mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-...

    深入理解Apache_Mina_(1)----_Mina的几个类

    Mina (Multi-threaded Integrated Network Architecture) 是一个高性能且灵活的网络应用程序框架,它支持多种传输协议,如 TCP、UDP 和串口通信。Mina 的设计目标之一就是简化网络编程的复杂性,让开发者能够更专注...

    cxf(jax-ws)+spring+hibernate整合包

    1.1.jar,log4j-1.2.14.jar,mina-core-2.0.7.jar,mssqlserver2.jar,msv-core-2011.1.jar,neethi-3.0.2.jar,oauth-20100527.jar,oauth-provider-20100527.jar,opensaml-2.5.1-1.jar,openws-1.4.2-1.jar,...

    mina-http-2.0.7.jar.zip_mina_mina 获取POST_mina-http_mina-http-2.0

    MINA的核心设计目标是提供一个与传输协议无关的抽象层,使得开发者可以轻松地构建基于TCP/IP、UDP/IP或其他协议的网络应用。在标题中提到的"mina-http-2.0.7.jar",是MINA框架针对HTTP协议的一个实现,特别强调了对...

    mina-master_mina_

    标题中的"mina-master_mina_"可能指的是一个MINA项目或示例的主分支,可能包含了服务器端的核心代码和配置。描述中提到的"mina 服务端的简单应用,直接部署可以使用"表明这个压缩包包含了一个能够快速运行的MINA...

    Android-基于ApacheMINA进行封装实现AndroidAPP作为服务器客户端进行通讯

    - **Filter Chain**:MINA采用过滤器链的设计模式,允许开发者插入自定义的处理逻辑,每个过滤器对数据进行处理,然后传递给下一个过滤器。 - **Session**:MINA中的Session代表一个网络连接,它包含了与连接相关...

    apache ------Mina

    apache MinaMina apache MinaMina apache MinaMina apache MinaMinaapache MinaMina apache MinaMina apache MinaMina apache MinaMina apache MinaMina

    mina2.0全部jar包

    mina-transport-apr-2.0.7.jar是MINA对Apache Portable Runtime (APR)的支持,APR是一个库,提供了操作系统级别的接口,如socket和线程,可以提升MINA在某些平台上的性能。 mina-integration-jmx-2.0.7.jar提供了...

    Spring-mybaits-mina三大框架的整合

    在"spring-mina-multi-port"这个文件名中,我们可以推测这是一个示例项目,展示了如何在Spring中配置Mina监听多个端口。这可能涉及到在Spring配置文件中创建多个IoAcceptor实例,每个配置不同的端口号,从而实现服务...

    Spring-mybaits-mina整合,可监听多端口

    1:Spring-mybaits-mina三大框架的整合,mina可以使用Spring的数据库数据库连接池,无需额外定义mybaits连接池。 2:mina可以自定义监听一个或者多个端口,可以从数据库中读取

    微信小程序(demo)会议室助手.zip

    微信小程序(demo)会议室助手MeetingRoomApp(会议室预订助手)一个微信小程序开发工具微信Web开发者工具 传送门项目结构|--api //接口配置文件|--images //存放项目图片|--pages //存放页面|--utils //存放方法等...

    apache-mina-2.0.4.rar_apache mina_mina

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

    深入理解Apache_Mina_(5)----_配置Mina的线程模型[归类].pdf

    Apache Mina 是一个高度可扩展的网络应用框架,主要用于简化网络服务的开发,如TCP/IP和UDP/IP协议。在这个深入理解Apache Mina的第五部分中,我们将关注Mina的线程模型配置,这是优化性能和管理资源的关键方面。 ...

    EJB-JSF-JPA-MINA

    MINA是一个高性能、异步的网络通信框架,主要用于开发网络应用,如服务器或客户端。MINA提供了一套高级API,使得开发者可以专注于业务逻辑,而无需关注底层网络编程的复杂性。它的异步事件驱动模型使得MINA在处理...

    mina服务器--实现纯文本和非纯文本的加密通讯

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,专门用于构建高性能、高可用性的网络应用程序,如TCP/IP和UDP服务。在这个主题中,“mina服务器--实现纯文本和非纯文本的加密...

    mina-graphql-proxy:Mina GraphQL的代理服务器

    您可以定义一个以更改代理服务器的行为。 GRAPHQL_HOST主机,graphql在其中启动,默认为localhost GRAPHQL_PORT -graphql开始的端口,默认为3085 GRAPHQL_PATH -graphql服务的路径,默认为graphql GRAPHQL_PROXY_...

Global site tag (gtag.js) - Google Analytics