写点什么

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

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

关注

评论

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

【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录

YashanDB

数据库 yashandb

HarmonyOS Next 动画大全 03-帧动画

万少

鸿蒙

Suning商品详情API接口的开发应用与收益

科普小能手

电商 API 接口 API 测试 苏宁API接口 苏宁商品详情接口

Mini LED显示屏:未来电视领域的潜在颠覆者?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

云智慧跻身2024亚太区ITSM软件市场第八,成唯一入选中国公司

云智慧AIOps社区

ITSM ITSM软件 IT服务管理

阿里云联合中国信通院等单位发布首个云计算智能化可观测性能力成熟度模型标准

阿里巴巴云原生

阿里云 云原生

垃圾短信?手机自动识别垃圾短信逻辑的分析

京东科技开发者

YashanDB共享集群产品能力观测:细节足见功底

YashanDB

数据库 yashandb

【YashanDB知识库】查看表空间是否加密

YashanDB

数据库 yashandb

自动化测试AI智能体:掌握AI,人人都是自动化测试工程师

测试人

软件测试

企业智能之旅(5):人工智能基础模型的选择与评估

亚马逊云科技 (Amazon Web Services)

关系型数据库设计三大范式

京东科技开发者

【YashanDB知识库】kettle同步大表提示java内存溢出

YashanDB

数据库 yashandb

用友 BIP 超级版:解锁数智研发管理新势能

用友BIP

用友 企业数智化 用友BIP 企业数智化转型

企业智能之旅(6):安全与负责任的人工智能

亚马逊云科技 (Amazon Web Services)

《Django 5 By Example》阅读笔记:p551-p560

codists

Python django

极狐GitLab 正式发布安全补丁版本 17.6.2、17.5.4、 17.4.6(修复 12 个漏洞)

极狐GitLab

gitlab 安全漏洞

学习下Redis内存模型

京东科技开发者

数据管理的演进之路:从自建系统迈向云原生时代

代码忍者

【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题

YashanDB

数据库 yashandb

计算机视觉中的图像特征提取技术详解

芯动大师

CNN 机器视觉 图像特征

Easysearch Java SDK 2.0.x 使用指南(一)

极限实验室

Java 索引 easysearch

统一身份安全管理体系的业务协同管理和支撑能力

芯盾时代

iam 零信任 权限管理系统 统一身份管理平台

通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统

阿里云大数据AI技术

阿里云 Milvus LLM rag PAI

Databend 产品月报(2024年11月)

Databend

数据库

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