azeroth-event:轻量级事件驱动插件

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

内容简介:轻量级事件驱动插件内部使用的事件插件, 用于业务解耦以及事件分发。

azeroth-event

轻量级事件驱动插件

内部使用的事件插件, 用于业务解耦以及事件分发。

结构图

azeroth-event:轻量级事件驱动插件

使用

// 插件配置
// 初始化插件
EventBus plugin = new EventBus();
// 全局开启异步,默认不开启的话即同步阻塞处理
plugin.async(1024, 8);
// 扫描包含有@Listener注解方法的类。2:实现ApplicationEventListener接口
// 设置扫描jar包包括引入的第三方jar包,默认不扫描
plugin.scanJar();
// 设置默认扫描的包命,默认全扫描
plugin.scanPackage("com.github.edagarli.eventbus.listener");
// 启动插件
plugin.start();

// 事件驱动
// 发送第一个消息
plugin.publish("123", new EventSource("test"));
// 发送第二个消息
plugin.publish("123", new EventSource("test111111"));
// 发送带tag的消息 
// 事件驱动一对多 发布一个事件触发多个事件处理
// 相同tag 共存多个事件 提供优先级处理 priority的值越小,优先权重越大
plugin.publish("test", new EventSource("123123"));

Awaitility.await().atMost(2, TimeUnit.MINUTES).until(new Callable<Boolean>() {
@Override
   public Boolean call() throws Exception {
	  return eventBus.stop();
   }
});

maven仓库~

<dependency>
  <groupId>com.github.edagarli</groupId>
  <artifactId>azeroth-event</artifactId>
  <version>1.0.0</version>
</dependency>

更新说明

TODO

  1. 最终一致性(考虑 sql 持久化,增加重试机制)
  2. 支持el动态表达式
  3. 代码重构,职责更细分清晰,方便扩展

2019-01-12 v1.0.0

  1. 支持并发,加速服务处理效率,事件发布和异步处理能力(disruptor)
  2. 项目内服务解耦 观察者和发布者互不干涉
  3. 模仿spring事件驱动模型 一对多即发布一个事件触发多个事件处理
  4. 增加多个监听器优先处理权 异步处理的情况下保证提交次序,不能保证执行完成的次序
  5. 异步队列支持优雅停机保证内存Channel的可靠性
  6. 增加阀值,异步模式下 ringbuffer超过阀值 自动切回同步 恢复正常再次切换成异步模式

参考

模仿的Spring中的消息事件: 详解Spring事件驱动模型

结合Disruptor异步处理框架: 详情Disruptor异步处理框架


以上所述就是小编给大家介绍的《azeroth-event:轻量级事件驱动插件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

风吹江南之互联网金融

风吹江南之互联网金融

陈宇(江南愤青) / 东方出版社 / 2014-6-1 / 55元

随着中国互联网金融浪潮高涨,P2P、众筹、余额宝、微信支付等新生事物层出不穷,加之大数据等时髦概念助阵,简直是乱花渐欲迷人眼,令媒体兴奋,公众狂热。那么,互联网金融真的能“颠覆”传统金融吗?当互联网思维对撞传统金融观念,是互联网金融的一统天下,还是传统金融业的自我革新?究竟是谁动了金融业的奶酪? 本书作者早期试水创立具有互联网金融雏形的网站,后来成为互联网金融的资深投资人,基于其多年在该领域......一起来看看 《风吹江南之互联网金融》 这本书的介绍吧!

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

在线压缩/解压 HTML 代码

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

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具