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

  1. Final consistency (consider sql persistence, increase retry mechanism)
  2. Support el dynamic expressions
  3. Code refactoring, responsibilities are more subdivided and easy to expand

2019-01-12 v1.0.0

  1. Support concurrency, accelerate service processing efficiency, event publishing and asynchronous processing capability (disruptor)
  2. In-project service decoupling Observers and publishers do not interfere with each other
  3. Imitate the spring event-driven model. One-to-many release one event to trigger multiple event processing.
  4. 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.
  5. Asynchronous queues support graceful downtime to ensure the reliability of memory channels
  6. 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轻量级事件驱动框架相关推荐

  1. javascript事件驱动框架 收藏

    javascript事件驱动框架 收藏 一个简单的事件驱动框架的演示: /*ControlDemo.js*/ //事件驱动框架(演示) function ControlDemo(page) {  // ...

  2. Redis事件驱动框架

    通信模型的选择 Redis作为一个Client-Server架构的数据库,其源码中不少都是用来实现网络通信的部分.最常见的网络通信方式是使用Socket编程模型(Socket套接字编程可参考文末链接1 ...

  3. Google 开源 AdaNet:快速灵活的轻量级 AutoML 框架

    雷锋网 AI 科技评论编者按:近期,Google 开源了轻量级 AutoML 框架-- AdaNet,该框架基于 TensorFlow,只需要少量的专家干预便能自动学习高质量模型,在提供学习保证(le ...

  4. 众里寻他千百度-- 轻量级持久化框架

    初衷 纯JDBC 持久化框架 轻量级持久化框架 设计思路 怎么使用 依赖 数据库配置 正式使用 数据库表结构 Java Bean结构 从数据库获取一条记录并转为对象 高级版 数据库内记录 JavaBe ...

  5. php yof框架特点_腾讯正式开源高性能超轻量级 PHP 框架 Biny

    概况 Biny是一款高性能的超轻量级PHP框架 遵循 MVC 模式,用于快速开发现代 Web 应用程序 Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用 高性能,框架 ...

  6. 支撑微博千亿调用的轻量级RPC框架:Motan

    随着微博容器化部署以及混合云平台的高速发展,RPC 在微服务化的进程中越来越重要,对 RPC 的需求也产生了一些变化.今天主要介绍一下微博 RPC 框架 Motan,以及为了更好的适应混合云部署所做的 ...

  7. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  8. 「造个轮子」——cicada(轻量级 WEB 框架)

    前言 俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围. 创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式. 好了,现在着重来谈谈 cicada 这个项目 ...

  9. php 常用rpc框架,php的轻量级rpc框架yar

    php的轻量级rpc框架yar 目的:类方法的远程调用,也就是一个rpc请求. RPC本质上也是一个网络请求,既然是请求,对于效率来说,就需要考虑了.yar是基于http来做的. 使用场景:多个项目共 ...

最新文章

  1. IDEA 常用设置
  2. Windows Phone 7 开“.NET研究”发之:工具栏
  3. YII2框架表单-model(验证)-HTML_help部件 URL_help部件 以注册页面为实例
  4. CSS--背景样式---伪类选择器---高级选择器---盒子模型---浮动
  5. 关于CAPWAP的一些概念
  6. Fortran入门教程(三)——输入输出
  7. 企业微信邮箱登录入口在哪里?
  8. 微信小程序【小程序码传参,自定义埋点】
  9. Github上量化交易相关项目汇总
  10. Centos7 查看 CPU 核数 和 型号 和 主频(亲测有效)
  11. 可能是全网最详细的python安装教程(windows),小白建议收藏
  12. 爱回收招股书解读:CEO提前减持?自营收入尚可但平台转型堪忧
  13. od重新下载与crackme005记录
  14. ORA-01653 表xxx无法通过8(在表空间xxx中)扩展解决方法
  15. 【环信IM集成教程】iOS端收到离线消息显示设置
  16. MySQL生成测试用垃圾数据
  17. 面试中经常问到的几个问题,快来看看能答对几道吧
  18. 【Linux 内核 内存管理】物理内存组织结构 ④ ( 内存区域 zone 简介 | zone 结构体源码分析 | zone 结构体源码 )
  19. ThinkPHP6 自定义指令(定时任务脚本 )使用技巧
  20. php札记,#php学习札记#基本语法

热门文章

  1. linux cpuburn,Linux Command – CPU Burn-in
  2. ISO三体系认证有哪些意义和好处?
  3. 「大模型」之所短,「知识图谱」之所长
  4. 四大系统-OA,PM,KM,ERP
  5. 备忘录,番茄钟,复盘反馈的学习类小程序
  6. 【博客系统】后台设计
  7. 微信域名防封跳转系统的原理 微信域名防封的注意点
  8. SEO实战分享:只需 2 步轻松提升网站搜索排名
  9. es用canals怎么和mysql同步_MySQL压测--注意事项和FAQ
  10. mysql 退出fdisk_Linux fdisk命令