CEP 概念

5.5.1 CEP是什么

CEP是流式处理的核心技术。

不管是单独的应用系统,还是数据仓库,都是先将数据存储到数据库/数据仓库,然后再处理或查询。而CEP与常见的Message Queue系统类似,都将数据看作数据流,在连续数据的快速移动过程中进行分析处理。这样的方式不需要很大的数据加载,完全可以在内存中进行,从而能够快速产生结果,如图5.29所示。

业务事件可能很复杂,在各种不同的数据流中源源不断地产生各种类型的事件。不仅需要对这些业务事件进行复杂的计算,如过滤、关联、聚合等,同时还需要考虑这些业务事件出现的时间序列,最终才能产生有意义的事件,或触发业务流程。注意,这些计算的规则可能还会经常变化。

这类问题通常通过基于规则的推理机(规则引擎)来实现,如图5.30所示。

图5.29

图5.30

5.5.2 CEP的架构

CEP的架构如图5.31所示。

图5.31

CEP在逻辑上应该包括:

  • 事件发生器通过应用系统、文件系统、数据库、互联网、人工及传感器产生事件。
  • 事件处理器模式的匹配、验证和改进、路由、转换及编排。
  • 事件消费者与事件发生器类似,也可以是应用系统、文件系统、数据库、互联网、人工界面等。

CEP将数据看作一种数据流,基于规则引擎对业务过程中持续产生的各种事件进行复杂的处理,能够实现对连续数据的快速分析处理。CEP可以应用在多种业务场景,如风险分析、程序化交易等。如果说BI实现了商业智能,那么CEP则实现了“持续智能(Continuous Intelligence)”。

5.5.3 Esper

Esper是一个开源的CEP实现。Esper是纯Java开源复杂事件和事件流引擎,可以监测事件流,并在特定事件发生时触发某些动作。Esper引擎是为了满足事件进行分析并做出反应等应用需求而产生的。这些应用需求实时或者接近实时地处理事件(或消息)。这类应用具有高吞吐量、低响应时延和复杂的计算等特点。

Esper引擎的典型应用有:

  • 业务处理管理和自动化(处理监控、业务活动监控、异常报告、经营智能化等)。
  • 财务(算法交易、欺诈检查、风险管理)。
  • 网络及应用程序监控[入侵检测、SLA(Service Level Agreement)监控]。
  • 传感器网络应用(RFID读取、生产线调度和控制、空中交通)。
  • Esper支持类SQL语句EPL(Event Process Language)。

本文选自本人新作《大数据架构详解:从数据获取到深度学习》5.5.1/5.5.2节。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2017-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏斑斓

系统架构 | 软件架构的一致性

在Brooks的力作《设计原本(The Design of Design)》一书中,提及“一致性”对软件的重要性。他认为:“一致性应该是所有质量原则的根基。好的...

3817
来自专栏杨建荣的学习笔记

记一次数据同步需求的改进(一) (r7笔记第2天)

最近有个需求,开发的同事找到我,提出了下面的需求 由于平台业务发展需要,需要将test_account_log 和test_protect_log 表前一天的增...

3264
来自专栏程序猿DD

浅谈微服务基建的逻辑

这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。 起点 首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视...

3388
来自专栏黑白安全

Cloudflare正式推出1.1.1.1公共DNS服务

Cloudflare的工作重点在于关注其自身DNS服务的隐私方面,并承诺在其内部每24小时就清楚DNS查询日志一次。

581
来自专栏腾讯移动品质中心TMQ的专栏

用FSM写Case,你会么?

1.引言 腾讯测试工程师小新一是一名资深的安卓客户端测试工程师,对于安卓客户端的功能测试、自动化测试和性能测试方面都有着非常丰富的经验。最近小新一被通知负责某二...

1949

组织微服务

微服务可能是我的开发伙伴朋友中最受欢迎的热门话题之一,我确实喜欢灵活,敏捷以及拥有更多选择的概念。但作为一名在软件集成领域工作多年的人,我开始看到一些类似于以前...

831
来自专栏看看搬搬

物联网的消息传递

为一个物联网用例部署消息代理模块,对于broker接口的可延展性而言会带来新的挑战。我们现在谈论的物联网涉及到数千个连接,消费者和目的,这让我们必须思考如何更仔...

2656
来自专栏林喜东的专栏

程序世界里的不信任原则

人与人之间最重要的是信任,但程序的世界里,可能信任越少越好;我越发觉得越是高性能高可用的系统里,不信任原则会体现得更加淋漓尽致。

1.7K5
来自专栏张善友的专栏

MindTouch简介和技术架构

摘要: 介绍MindTouch公司的企业级协作平台和平台架构。本文主要内容翻译自于【3】,也是协作吧!!的第一篇作品,希望大家多提意见。 正文: MindTou...

1847
来自专栏北京马哥教育

SDN有哪些开源项目?

SDN 之所以能够发展的如此之快,其中开源社区的贡献不容忽视。随着SDN 各类社区的不断发展状大,开源项目也在不断增多,从控制器到交换机再到网络虚拟化,开源...

2718

扫描关注云+社区