高吞吐量的Java事件总线:MBassador

栏目: Java · 发布时间: 7年前

内容简介:高吞吐量的Java事件总线:MBassador

MBassador是一款在多线程环境中为高吞吐量而优化的功能丰富的 java 事件总线。注解驱动、同步/异步事件发布,强/弱引用,动态事件过滤。

MBassador是实现发布/订阅模式的轻量,高性能的事件总线。它主要为了能易于使用的丰富的和可扩展的功能,同时保持资源效率和性能。

MBassador的高性能核心是一种专门的数据结构,可提供无阻塞的读写器,并最大限度地减少写入者的锁争用,从而将读/写并发访问性能的损耗降低到最小化。

MBassador的代码是生产就绪的:86%的指令覆盖率,82%的分支覆盖率,高度随机和同时运行的测试集,在过去18个月中没有报告严重的错误。在不彻底测试代码的情况下,不会对内核进行任何修改。

使用很简单,bus = new MBassador()创建单例,配置消息处理器使用@[author][author][author]Handler[/author][/author]注解[/author],然后将其注册到总线中bus.subscribe(aListener),这样就可以开始发送消息bus.post(message).now() 或bus.post(message).asynchronously().


// Define your handlers

@ Listener(references = References.Strong)
class SimpleFileListener{

@ Handler
public void handle(File file){
// do something with the file
}

@ Handler(delivery = Invoke.Asynchronously)
public void expensiveOperation(File file){
// do something with the file
}

@ Handler(condition =
"msg.size >= 10000")
@ Enveloped(messages = {HashMap.class, LinkedList.class})
public void handleLarge(MessageEnvelope envelope) {
// handle objects without common super type
}

}

// somewhere else in your code

MBassador bus = new MBassador();
bus.subscribe (new SimpleFileListener());
bus.post(new File(
"/tmp/smallfile.csv")).now();
bus.post(new File(
"/tmp/bigfile.csv")).asynchronously();

性能测试:[该贴被banq于2017-06-13 22:23修改过]


以上所述就是小编给大家介绍的《高吞吐量的Java事件总线:MBassador》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据之眼

大数据之眼

[德]尤夫娜·霍夫施泰特 / 陈巍 / 浙江文艺出版社 / 2018-5-7 / 68.00元

德国狂销10万册的大数据商业应用畅销书,经典之作《大数据时代》的姊妹篇。 该书在德语国家促发了一场关于大数据,人工智能与人的关系建构的大讨论。 德国大数据与人工智能领域权威,首度为中国读者亲笔作序。 在后大数据时代,如何维护自己的隐私,如何巧妙利用资源获得更多金钱? 一部对大数据发展所产生的问题进行思考和规避的先知式作品。 当智能机器欲“优化”我们,入侵我们的生活,统......一起来看看 《大数据之眼》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具