JdonFramework并发异步特性

jdon框架支持并发异步等概念,能够根据服务器自身处理量,动态调节并发量,如果服务器比较弱,可以删除或延时一些细枝末节的处理。

Jdon框架让延迟和吞吐量之间有一个自主选择,而这些概念传统的JavaEE如EJB/Spring目前还没有提供这种细粒度的编码选择。

推荐一篇文章:构建可伸缩系统 Scala vs Java,JdonFramework其实类似这个案例中的Scala,虽然文章作者倾向于Scala,但是使用Jdon框架完全可以做到Scala这种吞吐量等三个指标的平衡。

该文章作者是用Jmeter进行测试,Jdon框架也是使用Jmeter测试了两个写场景和多个读场景,可以与其index payments和search比较。

普通Java的测试图:

由于搜索请求耗费CPU,同时拖累了Index等其他查询,搜索请求实际在独占CPU,同时搜索自己的吞吐量也大幅度缩小,意味着程序中可能有同步锁(当然,我没有看源码,只是凭以往经验)。

下面是Scala的测试图:

在Scala中,Median 和90%line和吞吐量三个指标在三个模块中都没有因为搜索请求处理而影响,文章归结于异步因素,这也是我认同的。

当然文章也不否认Java能够做到,关键是否优雅地做到,而Jdonframework则依靠DDD+ EventSourcing +CQRS不但可以在代码编写上优雅做到,而且性能吞吐量等三个指标因为Jdon框架的异步同样不受影响,下图是引入异步后Jdon框架Jmeter的测试结果,从Median 90%line和吞吐量三个指标值可以看出:

下图同样使用Jdonframework以前没有使用异步版本,图中90%line和吞吐量都比上图要低,主要原因也是因为同步执行这些功能反而牵涉彼此,就如同将两个人的一只腿绑在一起走路。

以上两张图类似Scala vs Java这篇文章的两张图,没有转换成文章中竖条图直观。感谢Importantme翻译了这篇文章,英文原文:Scalable scala vs java

[该贴被admin于2013-04-10 09:19修改过]
[该贴被admin于2013-04-10 13:42修改过]

重申一下,我很喜爱Scala,推崇新技术。

以前曾经用Jdonframework和Ruby on Rails较劲:Ruby On Rails 与Jdon Framework架构比较,如今Rails因为性能问题可能要被Ruby社区抛弃,而Jdonframework则在我与道友们讨论以及不断耕耘下,又一次赶上了技术潮流,再次证明,语言底层技术是次要,掌握思想,打狗棒依然可以变成倚天屠龙剑。

以上可做王婆卖瓜之意淫吧。