`
gh_aiyz
  • 浏览: 40035 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Missian 0.31 发布

阅读更多

Missian已经发布了第四个小版本:0.31版本,正在加紧性能测试,1.0正式版前发布在望了。

 

更新历史

 

0.31 主要更新

1、原异步方式增加对重载方法的支持

2、支持从方法中在最后一个参数传入Callback

3、添加一个Future风格的异步方式。

具体使用方式参见:Missian异步客户端指南

 

0.30 主要更新:

1. 异步回调方式更新:以前是每个方法需要实现一个回调类,回调类要求继承Callback。现在的实现方式是每个interface一个回调类,每个方法在这个回调类里面对应一个回调方法。无侵入性。

 

0.20主要更新点:

提供了HTTP兼容性,Hessian客户端可以调用Missian服务,Missian同步客户端也可以调用Hessian服务了。

 

0.10发布:

实现主要的技术架构和目标。

 

Missian简介

Missian是一个构建于Mina和Hessian基础上的异步RPC框架,能够兼容HTTP协议和TCP协议,能和Hessian互通兼容,它提供了:

 

1、一个基于mina的高性能服务器,具备mina所有的一切优秀基因。Missian服务器能够在一个端口之上兼容tcp和http协议格式,因 此开启了Missian服务之后,即可以用Missian客户端调用(同步/异步,HTTP/TCP),也可以供Hessian客户端调用。

 

2、一个基于阻塞式的传统Socket的同步客户端,同样支持HTTP和TCP,它可以使用HTTP或TCP去访问Missian服务,同时也可以 使用HTTP方式去访问Hessian服务。您可以选择使用短连接的方式,也可以使用长连接(这时强制要求使用连接池,但Missian提供了一个基于 apache commons-pool的Socket连接池实现)。可以根据具体情况决定使用方式。

 

3、一个基于Mina NioSocketConnector的异步客户端。默认使用一个4个线程的线程池来处理回调,但开发者也可以指定线程数,或者传入一个存在的线程池。异 步客户端只能调用Missian服务,而不能够调用Hessian服务(正在思考如何实现)。同样,协议可以是HTTP或者TCP。

分享到:
评论
8 楼 instant125 2012-11-30  
instant125 写道
用这个 开发游戏后台  会有哪些瓶颈  请指导一下


怎么改变成 可以传递json格式的字符串解析
7 楼 instant125 2012-11-28  
用这个 开发游戏后台  会有哪些瓶颈  请指导一下
6 楼 HeDYn 2011-10-13  
0.31版还有几个小bug呀,虽然已自行修正,但还是期待1.0正式版
5 楼 agapple 2011-05-06  
hessian协议一直是个很纠结,1.0和2.0之间协议不兼容,不同版本之间传递数据经常会出现一些不兼容,纠结啊。

可以考虑下protobuf,性能上和传输字节数上,都比hessian要好.测试过程中json的表现也比hessian略好一点,仅供参考: http://agapple.iteye.com/blog/859052

所以作者眼界可以放的更宽点,序列化协议层面上,传输协议层面上(udp)。都可以做下尝试
4 楼 sohuexe 2011-05-06  
com.missian.client.async.AsyncFuture
        @Override
	public V get(long timeout, TimeUnit unit) throws InterruptedException,
			ExecutionException, TimeoutException {
		lock.lock();
		try {
			[color=darkred]if(!done) {[/color]
				boolean success = notNull.await(timeout, unit);
				if(!success) {
					throw new TimeoutException();
				}
			}
		} finally {
			lock.unlock();
		}
		return value;
	}

	public void done(V value) {
		lock.lock();
		try {
			[color=red]if(!done) {[/color]
				this.value = value;
				this.done = true;
				notNull.signalAll();
			}
		} finally {
			lock.unlock();
		}
		for(AsyncListener<V> listener : listenerList) {
			listener.asyncReturn(value);
		}
	}



中的get和done方法为什么是if而不是while呢?
3 楼 myreligion 2011-05-06  
一直在期待基于Socket的RPC调用,一直没有等到。

自己封装了一个自定义协议的,不过还是期待支持hessian的。
2 楼 xindeman 2011-05-05  
1.0正式版前发布在望了?
搁浅了?
1 楼 shixiaomu 2011-02-25  
需要人手吗,我想参与一下....

相关推荐

Global site tag (gtag.js) - Google Analytics