开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

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

关注

评论

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

10款优秀性价比销售客户管理系统,助力提升客户关系管理

爱吃小舅的鱼

销售客户管理系统

韦恩图如何在线制作?10个韦恩图模板案例推荐!

职场工具箱

在线白板 绘图软件 效率软件 信息可视化 韦恩图

ByConity ELT 测试体验

穿过生命散发芬芳

ByConity

《Django 5 By Example》阅读笔记:p339-p358

codists

Python django

命令行应用开发入门指南:从脚手架搭建到UI库与交互增强

代码忍者

聚焦实践,面向前端 | 12月7日华为云首届开源开发者论坛火热报名中~

华为云开源

前端 开发者大会 线下活动 华为云开源

2024年小型企业短信API:7个创新解决方案

幂简集成

短信 API

适合企业使用的电子合同系统有哪些?10大厂商测评

爱吃小舅的鱼

电子合同系统

Steinberg Cubase Pro 12 for mac(音乐创作软件)

Mac相关知识分享

XMind for mac (XMind思维导图)中文版

Mac相关知识分享

天润融通与上汽大众共话未来:数字化重塑企业核心竞争力

天润融通

PIRF-416:How To-A way Sound Interesting

Echo!!!

English

WebRTC 创建者刚加入了 OpenAI,他是如何思考语音 AI 的未来?

声网

关于并行,你需要知道的一切

TechubNews

语音 Agent 平台 PlayAI 融资 2100 万美元;英伟达音频模型 Fugatto:输入文本音频生成人声、音乐和音效

声网

如何管理一个散漫的团队

易成研发中心

团队管理

2024年后Java还有搞头吗?

了不起的程序猿

Java 程序员 架构师 java面试 Java进阶

和鲸再度携手GISphere!聚焦城市 CO₂ 排放,共探地理归因分析与碳中和之路

ModelWhale

Python 人工智能 大数据 气候

Unveiling IPQ4019/IPQ4029 Chips: High-Performance WiFi and Mesh Network Solutions

wifi6-yiyi

openwrt

时序数据库IoTDB助力智慧城市建设,支撑北斗智慧物联五大应用平台

Apache IoTDB

Redis【1】- 如何阅读Redis源码

秦怀杂货店

redis 源码

鸿蒙NEXT元服务:收藏、卡片、用户协议、隐私声明、分享链接、评分与评论

zhongcx

鸿蒙元服务

数智绩效:数智预算精准配置资源

用友智能财务

财务 企业数智化 企业数智化转型

Java项目如何统一日志管理

爱吃小舅的鱼

Java 日志管理

颠覆传统的自动化测试平台

虫师

自动化 测试 框架 测试平台

TouchDesigner Pro 099 for Mac(原型设计渲染软件)

Mac相关知识分享

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