2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

牛掰!阿里大佬刷了四年LeetCode才总结出来的数据结构和算法手册

Java 编程 架构 面试 程序人生

无敌!肝完这套Alibaba面试全能小册,百万年薪在向你招手!

Java 阿里巴巴 编程 面试 程序人生

12年技术老兵整理的Alibaba“MySQL 学习笔记”带你轻松拿捏MySQL

Java 编程 架构 面试 程序人生

腾讯出品526页异步非阻塞通信领域巅峰之作:Netty IO核心技术指南

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

使用DEM和矢量数据绘制地图

gisbook

GIS map DEM

什么是CPython

林十二XII

拯救你的算法!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java 编程 架构 面试 程序人生

TDSQL自动交付方案: 全球灵活部署,最快9分钟

腾讯云数据库

数据库 tdsql

TDSQL多集群下的自动化和交付

腾讯云数据库

数据库 tdsql

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

自助售货机主板要注意哪几个方面?

双赞工控

安卓主板

少女银四失足,偶得“阿里Java神级题库(25专题)”,金九稳了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

在?来说点儿程序员Style的金句吧【话题讨论】

气气

话题讨论

TDSQL交付要求和挑战: 快速、灵活、安全

腾讯云数据库

数据库 tdsql

云原生架构下的持续交付实践

百度Geek说

架构 云原生 后端

阿里最受追捧的「中高级技术核心」,助我拿下菜鸟offer,附面经

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

偷偷翻开学妹笔记本,发现绝密Spring Cloud Alibaba笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

如何实现 iOS 短视频跨页面的无痕续播?

阿里云CloudImagine

ios 阿里云 Video播放器 视频云

面试官:你说说限流的原理?

艾小仙

面试

理解RESTful API

林十二XII

在云中确保安全的五个技巧

云计算

来自阿里的图解计算机、网络、操作系统PDF,竟在GitHub点赞最高

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

工信部整治平台网址屏蔽问题,打击互联网行业垄断任重道远

石头IT视角

高能预警!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java 程序员 架构 面试 Alibaba

腾讯云分布式数据库TDSQL的十年自主可控之路

腾讯云数据库

数据库 tdsql

T-TDSQL的核心理念,为数据赋能

腾讯云数据库

数据库 tdsql

TDSQL原创技术的出发点

腾讯云数据库

数据库 tdsql

T-TDSQL的典型应用

腾讯云数据库

数据库 tdsql

不是吧 阿sir!都21年了还有人不会算法?赠你份字节内部算法手册吧

Java 编程 架构 面试 架构师

大奖花落谁家,TDSQL他来了

腾讯云数据库

数据库 tdsql

T-TDSQL的核心技术

腾讯云数据库

数据库 tdsql

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