`
shangboz
  • 浏览: 14200 次
文章分类
社区版块
存档分类
最新评论

Siddhi 组件架构

阅读更多

Siddhi使用来自各种事件源的事件,根据定义的Siddhi应用程序处理事件,并向订阅的事件接收器生成结果。Siddhi可以从内存表或外部数据存储(如RDBMS、MongoDB、Hazelcast内存网格等)中存储和使用事件。)。Siddhi还允许应用程序和用户通过其存储查询API查询Siddhi,以交互方式从内存和其他存储中检索数据。

 

Siddhi主要模块

  • Siddhi Query API:这允许您使用POJO类将Siddhi应用程序的执行逻辑定义为查询和Definitions。在其内部,Siddhi使用这些对象来确定其预期执行的任务。
  • Siddhi Query Compiler:这模块允许你通过Siddhi Streaming SQL定义Siddhi应用,然后将SQL脚本转化为siddhi可以执行的查询POJO对象。
  • Siddhi Core: 这个模块根据Siddhi应用定义来创建并执行运行时事件。
  • Siddhi Annotation(4.0版本):这个模块提供注解功能支持,允许所有扩展背注解,这样就可以被Siddhi Core 挑选处理,也有助于生成扩展文档。

Siddhi 组件结构 

从图上可以看到,Siddhi Core模块维护执行逻辑,它与外部环境和系统交互以消费和发布消息。要实现上述功能,它执行下面几个模块:

  • SiddhiManager:这部分是Siddhi core的核心模块,负责管理Siddhi Application Runtimes,并通过SiddhiContext的周期性状态存储、统计报表和扩展加载来简化其功能。
  • SiddhiAppRuntime:每一个部署的Siddhi Application会生产一个SiddhiAppRuntime,它为每一个Siddhi Application 定义提供一个独立的执行环境。Siddhi Application Runtime 基于他们对应的Siddhi Application的逻辑,从多种外部系统生产或者消费消息。
  • SiddhiContext:这是同一个SiddhiMananger中所有Application Runtime的共享对象,其中主要包括持久化引用、统一管理和扩展holders

 Siddhi App 执行流

Siddhi执行过程中大致使用到下面几个组件:

  • StreamJunction:事件路由,默认使用imcoming thread 订阅组件消息,@Async实现异步缓存消费
  • InputHandler:StreamJunction的入口
  • StreamCallBack:从StreamJunction接受数据
  • Queries & Partitions:filtering,transforming,joining,pattern matching
  • Source:external Source in various data formate @Source Annotation
  • SourceMapper:Map for Source,convert source to event
  • Sink:convert siddhi Event to various data fromate @Sink annotation
  • SinkMapper:configured for sink,map event to specified data formate @map Annotation in @Sink
  • Table:store event use inmemory table by default
  • Window:store event and determine when event be expired
  • IncrementalAggregation:增量聚合
  • Trigger:trigger event at interval
  • QueryCallback:receive notification

Siddhi Window

Siddhi使用四种事件实现处理流程:

  • Current Event:从流进来的当前事件
  • Expired Event:window中超时失效的事件
  • Timer Event:通知查询更新执行计划的事件,一般由scheduler触发
  • Reset Event:重置查询状态

 

分享到:
评论

相关推荐

    siddhi-store-rdbms_wso2_siddhi_源码

    WSO2的工具通常设计为互操作和可扩展的,以适应各种企业架构。 7. **MySQL集成**:作为广泛使用的开源数据库,MySQL是许多企业的首选。Siddhi Store RDBMS对MySQL的支持意味着它能够无缝集成到现有的MySQL基础设施...

    siddhi:流处理和复杂事件处理引擎

    Siddhi核心库包含执行Siddhi所需的基本核心库,例如 , , 和 。 总览 Siddhi可以作为嵌入式Java和Python库运行,也可以作为裸机,VM和Docker上的微服务运行,并且可以在Kubernetes中本地运行。 Siddhi提供基于...

    distribution:Siddhi流式运行时和工具分发

    此存储库包含必要的源代码,该源代码通过将Siddhi库嵌入到其中来创建Siddhi运行程序和Siddhi工具发行版。 Siddhi维护两个发行版,分别为Siddhi-Runner和Siddhi-Tooling发行版。 Siddhi-Runner发行版捆绑了Siddhi...

    www:悉达(Siddhi)网站和文档

    2. **Siddhi架构**: - **查询处理器**:解析并执行Siddhi查询,这些查询定义了如何处理输入流。 - **事件处理器**:处理事件的输入和输出,包括窗口、聚合器和连接器等组件。 - **存储**:提供了内存存储和持久...

    siddhi-io-kafka:可用于接收来自Kafka集群的事件并将事件发布到Kafka集群的扩展

    悉达(Siddhi)IO卡夫卡(Kafka) siddhi-io-kafka扩展名是的扩展名,用于从Kafka接收事件并向Kafka发布事件。 有关及其功能的信息,请参阅。下载从,具有组ID io.siddhi.extension.* 5.x及更高版本。 从版本为4.x及...

    siddhi-io-http-sync

    默认情况下,此扩展是WSO2流处理器附带的,如果您希望使用此扩展的替代版本,则可以替换在<STREAM>/lib目录中找到的组件 。 使用扩展作为可以将此扩展作为Maven依赖项以及其他Siddhi依赖项添加到您的项目中。 ...

    LinearRoad_Siddhi:Siddhi中的LinearRoad基准实施

    LinearRoad_Siddhi 这是LinearRoad Benchmark( )的Siddhi实现,它完全用Java编写。 ## 1。 介绍 这是Siddhi CEP引擎( )的LinearRoad基准测试的实现。 ## 2。 联系信息 请联系[Miyuru Dayarathna](来自yahoo ...

    siddhi-store-mongodb:可用于对Mongo DB执行DB操作的扩展

    Siddhi商店MongoDB siddhi-store-mongodb扩展是的扩展,可持久存在并从/从MongoDB检索事件。 有关及其功能的信息,请参阅。 下载 从,组ID为io.siddhi.extension.* 2.x及更高版本。 从版本1.x及更低版本,组ID为...

    CEP-Siddhi_Editor:一个GUI文本编辑器,用于在WSO2 CEP中编写Siddhi查询。 这将是一个基于Web的解决方案,允许用户编写Siddhi查询,这些查询具有代码突出显示,代码完成和显示语法错误的功能

    CEP-Siddhi_Editor 一个GUI文本编辑器,用于在WSO2 CEP中编写Siddhi查询。 这将是一个基于Web的解决方案,允许用户编写Siddhi查询,这些查询具有代码突出显示,代码完成和显示语法错误的功能。 该项目的主要目标是...

    siddhi-extension-imageprocessing-objectdetection

    siddhi-extension-imageprocessing-objectdetection 欢迎, 提供的代码是功能性 siddhi 扩展,它计算图像中检测到的对象数量。 要检测的对象取决于给定的级联文件路径。 图像处理是使用 JavaCV 完成的。 使用以下 ...

    Siddhi-开源

    高性能开源 CEP 引擎。 该项目最初是作为斯里兰卡莫拉图瓦大学发起的研究项目,现在由 WSO2 Inc 改进。... 请从 http://wso2.com/products/complex-event-processor/ 找到 Siddhi 的改进版本作为 WSO2 CEP

    基于Storm+Esper架构实现的证券异常交易行为监控系统源码+项目说明(支持金证交易系统的指令拦截 、复制与解析).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学...基于Storm+Esper架构实现的证券异常交易行为监控系统源码+项目说明(支持金证交易系统的指令拦截 、复制与解析).zip

    nlp-toolbox:nlp-toolbox 的 siddhi 扩展

    《nlp-toolbox与Siddhi扩展:深度解析与应用》 在当今信息化时代,自然语言处理(NLP)已经成为人工智能领域的重要组成部分,而nlp-toolbox作为一个强大的NLP工具箱,为开发者提供了丰富的功能。本文将深入探讨nlp-...

    siddhigpu-performance-test:Siddhi GPU 实现性能测试 - 使用 DEBS GC 2013 数据集

    标题中的"Siddhi GPU Performance Test"指的是针对Siddhi流处理引擎的一项性能评估,它利用了GPU(图形处理器)的并行计算能力来提升处理效率。Siddhi是WSO2公司开发的一个实时事件处理引擎,它用于处理、分析和查询...

    CEP:cep相关学习信息

    CEP学习Esper学习WSO2 CEP学习DroolsPulsar市面上CEP产品大全CEP比较WSO2 CEP与Esper对比信息CEP Tooling Market Survey 2014(CEP工具情况)Stream与CEP结合Spark Streaming与Siddhi结合处理流式数据Storm与Esper结合...

    PyPI 官网下载 | PySiddhi4-1.1.0-py2.py3-none-macosx_10_6_intel.whl

    它支持Python 2和3,且专为macOS 10.6及更高版本的Intel架构设计。对于需要在Python环境中进行复杂事件处理的开发者来说,PySiddhi4是一个有价值的工具。安装和使用PySiddhi4的步骤包括从PyPI下载`.whl`文件,然后...

    PyPI 官网下载 | PySiddhi4-1.0.0-py2.py3-none-manylinux1_x86_64.whl

    PySiddhi4-1.0.0版本提供了Python程序员对Siddhi的强大功能的访问,使得Python开发者能够轻松地在Python应用中集成流处理和事件处理能力。这个版本可能包含了性能优化、新功能、bug修复和其他改进。 **使用PySiddhi...

    前端开源库-test262-integrator

    **前端开源库-test262-integrator** 在前端开发领域,开源库扮演着至关重要的角色,它们提供了丰富的功能,帮助开发者高效地构建Web应用。"test262-integrator"是一个专门为前端开源库设计的测试工具,其核心目标是...

    DAS310-120517-0307-4740.pdf

    根据所提供的文件内容,本文将对WSO2组织开发的数据分析服务(DAS)进行详细介绍,内容涵盖DAS服务的版本、功能、架构、安装和使用指南,以及相关数据分析技术。 ### DAS服务介绍 #### 1.1 关于DAS ##### 1.1.1 ...

    streaming-integrator-tooling

    这将运行开发人员环境,在该环境中可以执行以下操作: 创建Siddhi应用程序/ Siddhi应用程序模板并将siddhi应用程序部署到流集成器运行时中。 测试和调试Siddhi应用程序,以确定它们是否已准备好在生产环境中使用。 ...

Global site tag (gtag.js) - Google Analytics