50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

音视频行业玩家必读,如何实现生态合作+商业变现

华为云开发者联盟

音视频 华为云 实时音视频 实时音视频行业加速器 华为云SparkRTC

为什么企业一定要拥有知识管理的能力

小炮

企业知识管理

60KX17薪的面试题是什么样的,需要具备什么技术?首发

爱好编程进阶

Java 程序员 后端开发

brew使用记录

爱好编程进阶

Java 程序员 后端开发

8年开发架构师浅析SpringBoot的JVM的内存占用与Docker-spring

爱好编程进阶

Java 程序员 后端开发

浪潮云x乡村振兴:在烟台 十字融合勾勒数字乡村全新蓝图

云计算

网站开发进阶(五十三)浅谈JS、Ajax、JQuery之间的关系

No Silver Bullet

JavaScript jquery ajax 5月月更

2021秋招必刷题:Redis+Mybatis

爱好编程进阶

Java 程序员 后端开发

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

爱好编程进阶

Java 程序员 后端开发

C语言_函数封装、变量的作用域

DS小龙哥

5月月更

深入了解python字典的有序特性

红毛丹

python 3.5+ 5月月更

[Day39]-[二叉树] 二叉搜索树中第K小的元素

方勇(gopher)

LeetCode 二叉树 数据结构算法

云网资源如何搭乘「数字孪生」的快车道?

鲸品堂

数字孪生 设备 云网资源

Day163

爱好编程进阶

Java 程序员 后端开发

12-Redis持久化

爱好编程进阶

Java 程序员 后端开发

如何使用Tomcat实现WebSocket即时通讯服务服务端

华为云开发者联盟

html5 spring tomcat 浏览器 websocket

apache,httpd服务启动报错解决方法【linux用日志排错方法

爱好编程进阶

Java 程序员 后端开发

appiun滑动的简单封装

爱好编程进阶

Java 程序员 后端开发

网站开发进阶(五十)IE浏览器JS调试方法详解

No Silver Bullet

调试 5月月更

他教全世界程序员怎么写好代码,而且将所有答案写在这本书里!

博文视点Broadview

新作!分布式系统韧性架构压舱石OpenChaos

华为云开发者联盟

Serverless 容器 分布式系统 混沌工程 OpenChaos

兼容PyTorch,25倍性能加速,OneFlow“超速”了

OneFlow

人工智能 深度学习 性能优化 oneflow

HashMap

爱好编程进阶

Java 程序员 后端开发

01-Linux 系统简介

爱好编程进阶

程序员 后端开发

25 网站应用攻击与防御

爱好编程进阶

Java 程序员 后端开发

95% 的算法都是基于这 6 种算法思想

爱好编程进阶

Java 程序员 后端开发

AI 顶会 NeurIPS 收录:淘系技术自研3D AI 算法

爱好编程进阶

Java 程序员 后端开发

NFT 智能合约中的元数据(Metadata)

devpoint

区块链 智能合约 元数据 NFT

线程简介

急需上岸的小谢

5月月更

知名整机厂商中科曙光加入,携手龙蜥社区共建应用生态

OpenAnolis小助手

龙蜥社区 CLA 龙腾计划 中科曙光

2021腾讯最新面经总结:面试题库+实战笔记

爱好编程进阶

Java 程序员 后端开发

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