分享一个项目missian(一个异步RPC的框架)

问题描述

项目地址: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服务则即可以是同步的也可以是异步的。

解决方案

解决方案二:
学习学习。下来看看。

时间: 2024-11-08 20:26:29

分享一个项目missian(一个异步RPC的框架)的相关文章

web.xml-刚开始学java,现在看一个项目看不懂到底用什么框架

问题描述 刚开始学java,现在看一个项目看不懂到底用什么框架 看起来是spring,但是又觉得有点不同,请帮我看一下,下面是web.xml文件内容和springContext <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.s

版本控制-一个项目如何控制在多省的版本?

问题描述 一个项目如何控制在多省的版本? 一个项目在多省部署,每个省份需求都有些不同,很多时候会影响总体,代码在svn上是同一份,这样如何保证版本统一呢?哪位大神分享下经验?最好详细点,谢谢 解决方案 这种情况适合使用github,github的分支就可以完美解决你的问题.

一个项目怎么开发出来

最近在尝试梳理我们日常工作中做项目的一些小结,下面就讲这些小结做一些简单分享与交流. 首先,在我们做软件项目的过程中,一般项目中技术能力构成主要有下面三点 工程能力 关键技术能力 架构能力 不管技术是否复杂,架构是否混乱,工程能力对于任何一个项目是必不可少的.所以下面我就分享一下这几年在大型公司中实施工程方面的一些总结和经验,同样适用于一些中小型公司. 总体思路 目标 -- 原则 -- 方法 -- 结果 目标 目标,做一件事情的目标,是为了解决什么问题. 做软件项目,同样需要明白做这个项目的目标

聊天-ASP.net MVC的一个项目里可以使用Node.js做的应用吗?

问题描述 ASP.net MVC的一个项目里可以使用Node.js做的应用吗? 20C 是这样的,最近我们小组在做一个ASP.net MVC 的项目网页,里面有个即时网络聊天室的功能要实现,我看到用Node.js做好像很不错,但是就是不知道.net的项目可以使用吗?

从一个项目谈XP在国内的应用

项目 目前国内对于XP方面的研究和应用此起彼伏,各种关于XP的书籍争相出版,对于以XP为代表的"敏捷软件工程"方法的争论也在网络上随处可见.之所以出现这样的情况,是因为国内的用户在软件项目的实施过程中遇到了很多问题,例如项目的交付时间推迟.用户需求变更频繁等,我们的软件工程师迫切的希望能够找到解决问题的"银弹".对于高度动态.通过非常短的迭代周期来应对需求变化的极限编程方法论来讲,确实能够从一定程度上解决问题.但是,对于国内的软件开发项目来说,XP并非"银

项目所得:一个非典型性改动带来的思考(三) 之项目设计

上篇 中描述了针对第一个问题的思考, 在写的过程中几个关键词逐渐引起了我的注意, 本篇就让它们登台吧 , 它们是: 现在项目的套路及缺点, 数据库实现业务逻辑, 程序设计的美. 先看第一个, 即现在项目的套路及缺点. 虽说现在所项目还是不很多, 但对项目所用架构和技术还是有一定了解的. 现在是B/S流行的时代,我们这里 也只讨论Java实现B/S可选择的技术. 项目大都有三层, 也可以说五层. 三层是纯Java的三层, 五层是包括了数 据库和HTML_CSS_JavaScript后的说法. 这里

项目所得:一个非典型性改动带来的思考(二) 之对第一个问题的思考

上篇 里以一个简化的例子把问题描述了下, 这里将当时引发的思考记录下来. 1, 接口配以不同的实现, 好像设计模式里有这么一个叫"策略"模式的. 大致想法是这样的, 定义一个名为 CriteriaProvider的接口, 接口可以写以这样: Java代码 public interface CriteriaProvider{ boolean isPass(Student student); } 再依两套标准做不同的实现. 这样是可以解决在项目里调用的问题, 但由于原有判断在代码中很多分散

Excel中制作一个项目文件目录的两种方法

  Excel中制作一个项目文件目录的两种方法.如下图所示,就是一个项目文件夹内的所有文件: 接下来,先提取文件名称. 如果文件比较少,可以直接输入到Excel文档中,但是如果文件比较多,就要想想办法了. 方法一 在工程文件夹内,新建一个记事本文档,输入下面的内容后保存: DIR *.* /B >目录.TXT 将记事本文档的后缀名.txt 修改为.bat 然后双击这个文件,就会得到一个名为"目录"的记事本文件,里面会包含当前文件夹内的所有文件名. 这样就可以将目录中的文档名复制到

maven-Maven如何实现把两个项目打成一个jar包

问题描述 Maven如何实现把两个项目打成一个jar包 最近在研究maven,但是一直有个问题困扰着我,怎么把两个Maven项目打成一个jar包,求告知 解决方案 首先你的项目需要是Maven类型的项目,不是的话需要转成Maven类型的,然后在项目上单击右键,如下图: