前言: guava提供的eventbus可以很方便的处理一对多的事件问题, 最近正好使用到了,做个小结,使用的demo网上已经很多了,不再赘述,本文主要是源码分析+使用注意点+新老版本eventbus实现方式对比 一.原理 将定义的hander注册到eventbus中 ...
最近看Elastic Job源码,看到它里面实现的任务运行轨迹的持久化,使用的是Guava的AsyncEventBus,一个内存级别的异步事件总线服务,实现了简单的生产 消费者模式,从而在不影响任务执行效率的基础上,将任务执行和任务轨迹记录解耦,大大提高了EJ的性能。 EventBus在Elastic Job中的使用 EventBus的使用方法不难,具体可以参考EJ里面几个相关的类:JobEven ...
2017-05-23 16:32 1 2497 推荐指数:
前言: guava提供的eventbus可以很方便的处理一对多的事件问题, 最近正好使用到了,做个小结,使用的demo网上已经很多了,不再赘述,本文主要是源码分析+使用注意点+新老版本eventbus实现方式对比 一.原理 将定义的hander注册到eventbus中 ...
一、架构速读 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的。设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦。EventBus不是通用型的发布-订阅实现,不适用于进程间通信。 架构图如下: 。 二、简单使用 步骤 ...
1、EventBus使用 2、EventBus注册源码解析 3、EventBus事件分发解析 ...
EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. 但是仍然开放了构造函数,用于构造其他别的对象. Builder模式: EventBusBuilder. 有一个DEFAULT_BUILDER. 注册 ...
EventBus 不是通用的消息系统,也不是用来做进程间的通信的,而是在进程内,用于解耦两段直接调用的业务逻辑; 1、代码结构 event:eventbus中流转的事件(消息),包结构按照业务模块在细分(比如应用部署模块就是deployment); subscriber:消费者 ...
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里 ...
EventBus 1. 什么是EventBus 图片来源: 2. guava EventBus的构成 3. SubscriberRegistry 18版本: 19版本: 在构建Subscriber的时候根据方法是否 ...
1.将EventBus封装为单例模式使用 封装之后,将EventBus的post和register也进行封装 2.封装SystemEvent作为事件的顶层父类,为了使EventBusFactory的postEvent更通用 3.编写事件子类 4. ...