限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

通过 Esper 探索事件驱动架构

  • 2007-05-31
  • 本文字数:958 字

    阅读完需:约 3 分钟

在 Java One 上 Thomas Bernhardt 和 Alexandre Vasseur 向我们解说了事件驱动应用服务器(Event Driven Application Server)的概念,并介绍了 Esper 项目

事件驱动应用服务器是一种新型的服务器,为每秒需要处理超过 100,000 个事件的服务器提供一个运行时和多种支撑基础设施服务(如传输、安全、事件日志、高可靠性和连接器等)。除了事件处理以外,事件驱动服务器还可以将事件信息和长时间存在的数据(通常从关系数据库查询中获取)结合起来,以及在事件流上执行临时的关联关系和匹配操作。

事件系统(Event System)存在两个概念,可使之与消息传送系统(Messaging System)区分开来:

  • 事件流处理(Event Stream Processing,ESP)——检测事件数据流,分析出那些符合条件的事件,然后通知监听器
  • 复杂事件处理(Complex Event Processing,CEP)——可以监察各事件间的模式

全功能的事件驱动服务器尚需数年时间方可实现,但现在开发者就可通过来自 Codehaus 的 Esper,在独立应用、Java 企业级应用和 Spring 应用中实现事件驱动架构。Esper 的 1.0 版本( InfoQ 曾报道过)是在 2006 年 6 月发布的,它是一个轻量级、可嵌入的 ESP 和 CEP 的开源实现。

把 Esper 集成到独立应用中其实很简单。步骤如下:

  • 获取一个 Esper 引擎实例
  • 生成一个 Statement(用 Esper 的查询语言)
  • 使用引擎注册这个 Statement
  • 生成一个 Listener(通过实现一个 Java 接口,该接口在 Statement 所得值为 true 会被触发),并把它跟 Statement 绑定起来

事件能以 Java 对象、XML 或 Map 的形式展现,当它们通过系统的时候,系统会评估 Statement 的值,并执行 Listener 中的逻辑。

Esper 查询语言提供了丰富的语法,这些语法可以表达复杂的临时逻辑,此外还有如下的一些特征:

  • 事件过滤
  • 滑动窗口和聚集(计算在最近 30 秒内所有报告的有意义的信息)
  • 分组窗口和对输出率的限制(获取最近 10 分钟内每个区域的信息数量)
  • 连接和外连接(允许事件流之间的连接)
  • 与历史数据或引用数据集成(访问关系型数据库)
  • 生成所有 Statement 都可以访问的虚拟流

虽然事件驱动应用服务器的面世尚需时日,Esper 目前已经可以投入产品级应用了。你很简单就可以把 Esper 集成到你的应用中,将帮助你先人一着提供符合业务和客户在实时性方面需求的功能。

查看英文原文: Exploring Event Driven Architectures with Esper

2007-05-31 23:592822
用户头像

发布了 27 篇内容, 共 10.7 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

打开数“智”化之门,一字之差带来的思考

京东科技开发者

DevOps IoT 新基建 智能

Serverless 落地之痛怎么解?

阿里巴巴中间件

Serverless

生产环境全链路压测建设历程 18:某快递 A 股上市公司的生产压测案例之中篇

数列科技杨德华

全链路压测 七日更

MySQL字符集修改实战教程

Simon

MySQL 字符集 七日更

Android uni-app实现音视频通话

anyRTC开发者

uni-app android 音视频 WebRTC 跨平台

最有技术含量的面试

escray

面试 面经 七日更 十日谈

如何在 20 分钟内给你的 K8s PaaS 上线一个新功能?

阿里巴巴云原生

阿里云 容器 运维 云原生

XRP瑞波币系统软件开发|XRP瑞波币APP开发

系统开发

TypeScript | 第三章:函数、泛型和枚举

梁龙先森

typescript 编程 大前端 七日更

揭秘大流量场景下发布如丝般顺滑背后的原因

阿里巴巴中间件

阿里巴巴

附PPT丨AWS基于数据湖构建云上的数据分析架构

dbaplus社群

数据湖 AWS

手写线程池,对照学习ThreadPoolExecutor线程池实现原理!

小傅哥

Java 小傅哥 线程池 七日更 ThreadPoolExecutor

如何破解AI数据困境?京东智联云联邦学习平台有良方

京东科技开发者

人工智能 大数据 学习

12张图带你彻底理解分布式事务!!

冰河

分布式事务 BASE理论 TCC ACID CAP理论

Shell简介

入门小站

Shell

Go中的Channel背后的设计哲学

soolaugust

Go Concurrency Patterns 七日更 CSP Go 语言

现代JavaScript:ES6+ 中的 Imports,Exports,Let,Const 和 Promise

葡萄城技术团队

Java ES6

Spring Cloud 2020.0.0正式发布,再见了Netflix

YourBatman

Spring Cloud Spring Boot netflix 2020.0.0

任务发布系统软件开发|任务发布APP开发

系统开发

引领云原生发展浪潮 阿里云开启云原生大规模落地元年

阿里巴巴云原生

云计算 阿里巴巴 阿里云 最佳实践 云原生

JDK 16 即将发布,新特性速览!

xcbeyond

Java 七日更

世界之书:《禅与摩托车维修艺术》与发现良质

lidaobing

禅与摩托车维修艺术 28天写作

单点破局思维|技术人应知的创新思维模型(8)

Alan

个人成长 技术人应知的创新思维模型 七日更 28天写作

夜莺二次开发指南-监控系统(1)

ning

滴滴夜莺 夜莺监控

语音助手中的复杂语义表达方法

DataFunTalk

AI nlp

夜莺二次开发指南-监控系统(2)

ning

滴滴夜莺 夜莺监控

代码零改动Serverless架构升级?这家在线编程教育企业是这么做的

阿里巴巴中间件

Python Serverless

《数据分析》PDF免费下载

计算机与AI

数据分析

30G 上亿数据的超大文件,如何快速导入生产环境?

楼下小黑哥

Java MySQL 并发编程 线程池

社区一体化综合平台搭建,智慧平安小区建设解决方案

t13823115967

智慧城市 智慧平安社区平台建设

揭开阿里巴巴复杂任务资源混合调度技术面纱

阿里巴巴云原生

云计算 阿里云 性能优化 云原生 资源调度

通过Esper探索事件驱动架构_Java_Ian Roughley_InfoQ精选文章