QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

阿里云Imagine Computing创新技术大赛决赛启幕!

阿里云CloudImagine

云计算 阿里云 视频云 边缘云

技术分享| anyRTC 视频监控融合方案

anyRTC开发者

监控 音视频 指挥调度 快对讲 GB28181

开源工具系列2:Trivy

HummerCloud

云原生安全

融云再添多项荣誉!产品、服务获多方认可

融云 RongCloud

即时通讯 即时通讯IM

云图说 | 勒索病毒防治解决方案

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

SAP系统在企业内部控制方面有哪些独到之处?

SAP虾客

报表 SAP系统 业财一体化 change history

资源中心里的图片裁切如何使用?

Towify

【带你读论文】向量表征经典之DeepWalk

华为云开发者联盟

人工智能 华为云 企业号 1 月 PK 榜 向量表征

Databend 借助对象存储帮你实现降本增效

Databend

2022年总结:责任驱动开源

李孟聊AI

开源 总结

达摩院2023十大科技趋势发布,生成式AI将进入应用爆发期

阿里技术

云计算 AI 芯片 科技趋势

消息服务 + Serverless 函数计算如何助力企业降本提效?

Serverless Devs

HarmonyOS智能座舱体验是怎样炼成的?立即查看

HarmonyOS开发者

HarmonyOS

TiDB 中标杭州银行核心系统数据库项目

PingCAP

#TiDB

如何发布组件模板?

Towify

【FAQ】推送服务常见问题及解决方案

HarmonyOS SDK

HMS Core

为测试管理正名,华为云CodeArts TestPlan的守护之道

华为云开发者联盟

云计算 测试 华为云 华为CodeArts 企业号 1 月 PK 榜

解决高基数难题,云原生时序数据库 TDengine 3.0 荣获 IT168 2022 年度技术卓越奖

TDengine

数据库 tdengine 时序数据库

手把手教您在PyCharm中连接云端资源进行代码调试

华为云开发者联盟

人工智能 华为云 企业号 1 月 PK 榜

分布式系统-CAP理论

非晓为骁

分布式系统 CAP理论 分布式理论

2022转转技术年货发布啦

转转技术团队

转转 技术年货

乐信集团刘志诚:构建可观测、可管、可控的数据安全体系

极盾科技

数据安全

火山引擎DataTester升级:降低产品上线风险,助力产品敏捷迭代

字节跳动数据平台

大数据 AB testing实战

数据分析的尽头不是可视化,而是行动!行动!行动!

Kyligence

数据分析 指标洞察

SEO 已死,LLMO 万岁

Jina AI

人工智能 搜索引擎 SEO 谷歌 ChatGPT

谈谈在 select for update 中到底加了什么锁

风铃架构日知录

Java 数据库 IT 隔离级别

助力 100+ 家企业实现 CentOS 平滑迁移,OpenCloudOS「千百双扶计划」重磅上线

OpenCloudOS

Linux centos

MySql树形结构(多级菜单)查询设计方案

风铃架构日知录

Java MySQL 程序员 后端 IT

新书赠送丨《中国金融科技发展概览:创新与应用前沿》

Kyligence

数据分析 金融行业

会议室怎么添加预约功能?快速解决会议室使用效率问题

天天预约

小程序 SaaS 线上预约 会议室 预约工具

Nerdctl 原生支持 Nydus 加速镜像

SOFAStack

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