根据文档(https://docs.wso2.org/display/CEP310/Clustered+Deployment),您可以在分布式模式下运行 Siddhi。
据我了解,所有节点都将共享流定义并在共享上下文(流、查询、事件......)上运行。
但我不能让它发挥作用:
- 使用 2.0.0-wso2v4 版本
- 我编写了一个简单的程序,它启动了两个启用分布式处理的 siddhiManager。
- 该程序在 siddhiManager1 中创建一个流和一个查询
- 添加在两个管理器中打印事件的流回调(上一个流)
- 在 siddhiManager1 中发送事件
- 在 siddhiManager1 和 siddhiManager2 中打印流
结果是:
- 我可以看到 Hazelcast 工作,每个经理看到另一个。
- siddhiManager1 有一个流、一个查询并打印一个事件。
- siddhiManager2 没有任何东西。
我已经使用 siddhi-distribution (fat-jar) 进行了测试,但也使用了 siddhi-api、siddhi-core 和 siddhi-query jars。
Siddhi-distribution fat-jar 内部有一些与 Hazelcast 相关的 xml,但据我所知,这些配置没有被加载,并且在源代码(github)中我没有看到这些文件有什么特别之处(siddhiManager)。
关于如何在分布式缓存模式部署中运行 siddhi 的任何想法?我究竟做错了什么?