问题描述
项目地址:http://code.google.com/p/missian/目前代码注释还不够,但是提供的几个例子基本上说明了missian的用法。=========================================================================================大家都知道,Hessian是一个了不起的RPC框架。但是,它的调用是同步的,并且只能基于HTTP传输。我创建missian(mina+hessian的意思)的目的有二:1、实现异步的RPC调用。同步远程操作带来的损耗有时候是无法忍受的。异步操作要复杂一些,但是能够提高系统的并发能力和响应时间。2、让hessian可以在tcp上传输。HTTP是构建在tcp之上的应用层协议,本身是比较复杂的,对HTTP编码解码的过程也无疑是一个性能损耗。如果把HTTP这一层去掉,能够一定程度的提供性能。有多种办法可以对hessian进行扩展以支持tcp传输,但是很难让它异步,因此我决定大刀阔斧的对其进行改造,以达到我的目的。Missian的服务器端是基于mina的;同步客户端之基于传统的阻塞式Socket实现的,支持连接池;异步的客户端基于minaNioSocketConnector。这里也推荐一下mina这个了不起的nio框架。我从06年底就开始使用。最近的一个项目中,写的基于mina的http服务,在全部击中缓存的情况下(仍有一定的逻辑,诸如几个小列表进行取并集、交集,返回数据包在1-2K之间),测试达到了23000个TPS,此时CPU仅达到40%左右。我推荐大家使用mina来开发网络通信方面的东西,包括服务器。Missian没有绑定spring,但是我强烈推荐使用spring,这样missian可以直接去spring里面找到对应的bean,否则还需要你自己实现一个BeanLocator接口。同时我提供了几个例子:1、构建服务器端(基于spring)2、构建服务器端(无spring)3、同步客户端(无spring,使用spring来创建也很简单)4、异步客户端(基于spring)5、异步客户端(无spring)Missian即将支持基于HTTP的异步/同步调用,这时协议和hessian是完全一致的,因此missianhttp客户端可以调用hessianservlet(仅同步调用,因为异步需要服务器端回传方法名称,hessian是没有这个的),hessian也可以调用missian的服务。Missianhttp客户端调用missian服务则即可以是同步的也可以是异步的。
解决方案
解决方案二:
学习学习。下来看看。