event-center

所属分类:数据库系统
开发工具:Java
文件大小:0KB
下载次数:0
上传日期:2018-08-01 15:59:59
上 传 者sh-1993
说明:  事件中心,提供DDD中的事件的实现框架,基于dubbo框架+leveldb存储构建高可用的事件通讯组件
(Event center, providing the implementation framework of events in DDD, and building highly available event communication components based on dubbo framework+leveldb storage)

文件列表:
LICENSE (1063, 2018-08-01)
ec-api/ (0, 2018-08-01)
ec-api/pom.xml (1260, 2018-08-01)
ec-api/src/ (0, 2018-08-01)
ec-api/src/main/ (0, 2018-08-01)
ec-api/src/main/java/ (0, 2018-08-01)
ec-api/src/main/java/eventcenter/ (0, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ (0, 2018-08-01)
ec-api/src/main/java/eventcenter/api/AbstractEventCenter.java (8303, 2018-08-01)
ec-api/src/main/java/eventcenter/api/AbstractEventRegister.java (425, 2018-08-01)
ec-api/src/main/java/eventcenter/api/CommonEventListenerConfig.java (754, 2018-08-01)
ec-api/src/main/java/eventcenter/api/CommonEventRegister.java (447, 2018-08-01)
ec-api/src/main/java/eventcenter/api/CommonEventSource.java (2329, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ConfigContext.java (539, 2018-08-01)
ec-api/src/main/java/eventcenter/api/DefaultDelayEventListener.java (1061, 2018-08-01)
ec-api/src/main/java/eventcenter/api/DelayableEventListener.java (251, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventCenter.java (1163, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventCenterConfig.java (11425, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventConsumedStatus.java (385, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventContainer.java (834, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventFilter.java (198, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventFireFilter.java (951, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventInfo.java (1916, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventListener.java (254, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventListenerTask.java (5408, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventRegister.java (514, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventService.java (525, 2018-08-01)
ec-api/src/main/java/eventcenter/api/EventSourceBase.java (2766, 2018-08-01)
ec-api/src/main/java/eventcenter/api/InvalidAnnotationException.java (273, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerCache.java (5414, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerExecuted.java (389, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerFilter.java (640, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerFilterAdapter.java (328, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerReceipt.java (3515, 2018-08-01)
ec-api/src/main/java/eventcenter/api/ListenerScan.java (419, 2018-08-01)
ec-api/src/main/java/eventcenter/api/Remotable.java (209, 2018-08-01)
ec-api/src/main/java/eventcenter/api/SyncListenerMoreThanOneException.java (481, 2018-08-01)
ec-api/src/main/java/eventcenter/api/Version.java (196, 2018-08-01)
ec-api/src/main/java/eventcenter/api/aggregator/ (0, 2018-08-01)
... ...

# 事件中心(Event Center) 事件中心提供领域驱动开发中的领域事件的实现框架,它是基于dubbo框架+leveldb存储构建高可用的事件通讯组件。 ## 架构 ![架构](https://github.com/KingHimma/event-center/blob/master/resources/images/architecture.png) ## 功能 * 简单清晰的接口调用 * 基于leveldb实现事件队列,保障事件不丢失、不重复消费 * 基于dubbo实现分布式的事件,并结合leveldb支持离线推送功能,保障分布式事件的数据一致性和服务治理特性 * 系统接入方便,支持Spring注解和手动编写触发事件 * 高扩展性,可自定义队列容器、事件订阅机制、事件传输机制等等 * 支持异步事件、同步事件、分布式事件、并发聚合事件和调度事件 * 支持监控日志,可写入到elastic search或者其他的日志系统中进行监控 ## 开始第一个事件中心的程序 事件中心在使用之前需要构造两个组件,第一个是触发事件的实例:EventCenter;第二个是接收事件的监听器:EventListener。 我们先实现一个简单的监听器: ```java /** * 这里需要添加一个注解,用于描述这个监听器所监听的事件,可以支持多个事件同时监听 */ @ListenerBind("example.saidHello") public class SimpleEventListener implements EventListener { @Override public void onObserved(CommonEventSource source) { // source中传递了事件触发时所带的参数,这里可以原封不动的按照顺序取出 System.out.println("Hello " + source.getArg(0, String.class)); } } ``` 好了,接着可以构造一个最基本的事件中心实例: ```java public class ExampleMain { public static void main(String[] args) throws Exception { DefaultEventCenter eventCenter = new EventCenterBuilder() // 这里需要将监听器注入进来,后续章节会介绍如何自动注入监听器 .addEventListener(new SimpleEventListener()) .build(); // 启动事件中心容器 eventCenter.startup(); // 接着开始触发事件,打一个招呼 eventCenter.fireEvent("Main", "example.saidHello", "World"); // 跟着观察下控制台的输出,这里暂停500ms Thread.sleep(500); // 最后关闭掉容器 eventCenter.shutdown(); } } ``` 运行时,"Hello World"会迅速的打到控制台中,这里的fireEvent是异步执行,不会产生阻塞。事件中心也可以阻塞的触发事件,等待所有监听器都成功执行完成之后,才会释放。但是我不建议大家使用这种方式使用事件,这样破坏了事件本身在系统框架层中的意义。 ## 教程 * 可参考源码中的ec-examples模块,内部有很多demo * [教程文档](https://github.com/KingHimma/event-center/blob/master/https://jueming.gitbook.io/eventcenter)(还在持续更新中) ## 联系我们 * Email: usiboy@163.com * QQ: 281408062

近期下载者

相关文件


收藏者