azeroth-event轻量级事件驱动框架
azeroth-event
Lightweight event-driven framework
开源地址
中文说明/Chinese Documentation
Structure diagram
Quick start
// init eventbus plugin
EventBus plugin = new EventBus();
//Asynchronous globally enabled, if not enabled by default, synchronous blocking processing
plugin.async(1024, 8);
// Scan the class that contains the @Listener annotation method AND Implement the ApplicationEventListener interface
//Set the scan jar package to include the imported third-party jar package, which is not scanned by default.
plugin.scanJar();
// Set the default scan packet life, the default full scan
plugin.scanPackage("com.github.edagarli.eventbus.listener");
// plugin start
plugin.start();// send the first message
plugin.publish("123", new EventSource("test"));
// send the second message
plugin.publish("123", new EventSource("test111111"));
// One-to-many, one event, triggering multiple event processing
// Coexisting multiple events with the same tag. Providing priority processing. The smaller the value of priority, the greater the priority.
plugin.publish("test", new EventSource("123123"));Awaitility.await().atMost(2, TimeUnit.MINUTES).until(new Callable<Boolean>() {
@Overridepublic Boolean call() throws Exception {return eventBus.stop();}
});
复制代码
maven jar~
<dependency><groupId>com.github.edagarli</groupId><artifactId>azeroth-event</artifactId><version>1.0.0</version>
</dependency>
复制代码
Release Notes
TODO
- Final consistency (consider sql persistence, increase retry mechanism)
- Support el dynamic expressions
- Code refactoring, responsibilities are more subdivided and easy to expand
2019-01-12 v1.0.0
- Support concurrency, accelerate service processing efficiency, event publishing and asynchronous processing capability (disruptor)
- In-project service decoupling Observers and publishers do not interfere with each other
- Imitate the spring event-driven model. One-to-many release one event to trigger multiple event processing.
- Add multiple listener priority processing rights. In the case of asynchronous processing, the order of submission is guaranteed, and the order of execution is not guaranteed.
- Asynchronous queues support graceful downtime to ensure the reliability of memory channels
- Increase the threshold. In asynchronous mode, the ringbuffer exceeds the threshold. Automatically switch back to synchronous. Return to normal and switch to asynchronous mode again.
Projects
Disruptor
spring event-driven model
转载于:https://juejin.im/post/5c3ae9b26fb9a049c965e87f
azeroth-event轻量级事件驱动框架相关推荐
- javascript事件驱动框架 收藏
javascript事件驱动框架 收藏 一个简单的事件驱动框架的演示: /*ControlDemo.js*/ //事件驱动框架(演示) function ControlDemo(page) { // ...
- Redis事件驱动框架
通信模型的选择 Redis作为一个Client-Server架构的数据库,其源码中不少都是用来实现网络通信的部分.最常见的网络通信方式是使用Socket编程模型(Socket套接字编程可参考文末链接1 ...
- Google 开源 AdaNet:快速灵活的轻量级 AutoML 框架
雷锋网 AI 科技评论编者按:近期,Google 开源了轻量级 AutoML 框架-- AdaNet,该框架基于 TensorFlow,只需要少量的专家干预便能自动学习高质量模型,在提供学习保证(le ...
- 众里寻他千百度-- 轻量级持久化框架
初衷 纯JDBC 持久化框架 轻量级持久化框架 设计思路 怎么使用 依赖 数据库配置 正式使用 数据库表结构 Java Bean结构 从数据库获取一条记录并转为对象 高级版 数据库内记录 JavaBe ...
- php yof框架特点_腾讯正式开源高性能超轻量级 PHP 框架 Biny
概况 Biny是一款高性能的超轻量级PHP框架 遵循 MVC 模式,用于快速开发现代 Web 应用程序 Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用 高性能,框架 ...
- 支撑微博千亿调用的轻量级RPC框架:Motan
随着微博容器化部署以及混合云平台的高速发展,RPC 在微服务化的进程中越来越重要,对 RPC 的需求也产生了一些变化.今天主要介绍一下微博 RPC 框架 Motan,以及为了更好的适应混合云部署所做的 ...
- .NET轻量级ORM框架Dapper入门精通
一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...
- 「造个轮子」——cicada(轻量级 WEB 框架)
前言 俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围. 创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式. 好了,现在着重来谈谈 cicada 这个项目 ...
- php 常用rpc框架,php的轻量级rpc框架yar
php的轻量级rpc框架yar 目的:类方法的远程调用,也就是一个rpc请求. RPC本质上也是一个网络请求,既然是请求,对于效率来说,就需要考虑了.yar是基于http来做的. 使用场景:多个项目共 ...
最新文章
- IDEA 常用设置
- Windows Phone 7 开“.NET研究”发之:工具栏
- YII2框架表单-model(验证)-HTML_help部件 URL_help部件 以注册页面为实例
- CSS--背景样式---伪类选择器---高级选择器---盒子模型---浮动
- 关于CAPWAP的一些概念
- Fortran入门教程(三)——输入输出
- 企业微信邮箱登录入口在哪里?
- 微信小程序【小程序码传参,自定义埋点】
- Github上量化交易相关项目汇总
- Centos7 查看 CPU 核数 和 型号 和 主频(亲测有效)
- 可能是全网最详细的python安装教程(windows),小白建议收藏
- 爱回收招股书解读:CEO提前减持?自营收入尚可但平台转型堪忧
- od重新下载与crackme005记录
- ORA-01653 表xxx无法通过8(在表空间xxx中)扩展解决方法
- 【环信IM集成教程】iOS端收到离线消息显示设置
- MySQL生成测试用垃圾数据
- 面试中经常问到的几个问题,快来看看能答对几道吧
- 【Linux 内核 内存管理】物理内存组织结构 ④ ( 内存区域 zone 简介 | zone 结构体源码分析 | zone 结构体源码 )
- ThinkPHP6 自定义指令(定时任务脚本 )使用技巧
- php札记,#php学习札记#基本语法