写点什么

通过 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:593044
用户头像

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

关注

评论

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

借助GPT-4开启游戏开发之旅

xuyinyin

【YashanDB知识库】YashanDB 支持MySQL多表更新语句的解决方法

YashanDB

数据库 yashandb

【YashanDB知识库】从PostgreSQL迁移到YashanDB如何进行数据行数比对

YashanDB

数据库 yashandb

项目管理资格证书对职业发展的7大影响

薛同学

低代码开发平台与 Vue.js 的深度融合

秃头小帅oi

JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?

不在线第一只蜗牛

Python jdk

实用的iPhone数据恢复软件PhoneRescue for iOS中文激活版

小玖_苹果Mac软件

AMD 锐龙 7 9800X3D 处理器被曝看视频时烧毁

E科讯

OpenSearch LLM 智能问答版基于 Deepseek-R1 一分钟搭建 RAG 系统

阿里云大数据AI技术

人工智能 阿里云 LLM OpenSearch DeepSeek

Unity 专家分享2025年移动游戏行业七大趋势展望

极客天地

腾讯大数据基于 StarRocks 的向量检索探索

StarRocks

向量检索

Klook获1亿美元融资,推动全球旅游体验行业持续增长

财见

DS缩写乱争:当小海豚撞上AI顶流,技术圈也逃不过“撞名”修罗场

白鲸开源

开源 Apache DolphinScheduler DeepSeek DeepSeek v3 DeepSeek-R1、

优秀的词典工具Eudic欧路词典 for Mac中文激活版

小玖_苹果Mac软件

BRASS管乐器演奏插件Arturia Augmented BRASS for mac激活版

小玖_苹果Mac软件

全链路数据引擎:WhaleStudio驱动下的大数据调度与同步智能革新

白鲸开源

数据集成 数据源 数据调度 白鲸开源 WhaleStudio

人工智能丨deepseek是什么?我们能用它来做什么?

测试人

人工智能

高效前端应用:基于 Vue3 的低代码开发实践

秃头小帅oi

【YashanDB知识库】MySQL和YashanDB 隐式转换不一致引起的报错

YashanDB

数据库 yashandb

《王者荣耀》鸿蒙版上线后首次全民竞技之约!无缝流转新体验

最新动态

炸裂:SpringAI内置DeepSeek啦!

王磊

DeepSeek正重构人形机器人和具身大模型赛道!

机器人头条

科技 大模型 人形机器人 具身智能

基于人工智能技术的图像处理软件Topaz Photo AI for mac激活版

小玖_苹果Mac软件

全球人形机器人行业2024年度汇总和行业前瞻报告

机器人头条

科技 大模型 人形机器人 具身智能

Vue.js 与低代码开发:如何实现快速应用构建

伤感汤姆布利柏

硬件信息监测软件iStat Menus for mac中文激活版

小玖_苹果Mac软件

简洁高效的多窗格文件管理器QSpace Pro for mac中文激活版

小玖_苹果Mac软件

音频合成器插件Arturia Analog Lab Pro V for mac直装激活版

小玖_苹果Mac软件

低代码+AI!DeepSeek新时代,老板们坐不住了!

引迈信息

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