...
Create distributed CEP execution plans with the following properties
Warning title Warning Not following the below conventions will lead to unpredictable results! Info title Note In order to enable distributed deployments, prior to starting up the server, users need to enable hazelcast clustering by setting <CEP_HOME>/repository/conf/axis2/axis2.xml's clustering to true.
<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">
All execution plans across nodes has to have the same Execution Plan Name
Execution Plans has to have the following Backend Runtime Configuration
No Format BackendSiddhi RuntimeConfigurations Configuration Persistence snapshotSnapshot time interval in minutes : 0 EnableDistributed distributed processing : true
These can be added to the configuration file as below.
Code Block language html/xml linenumbers true <bucket<executionPlan name="FraudAnalyzer" statistics="enable" trace="enable" xmlns="http://wso2.org/carbon/cepeventprocessor"> ... <engineProviderConfiguration engineProvider="SiddhiCEPRuntime"> <siddhiConfiguration> <property name="siddhi.persistenceenable.snapshot.time.interval.minutes">0<distributed.processing">true</property> <property name="siddhi.enable.distributed.processing">true<persistence.snapshot.time.interval.minutes">0</property> </engineProviderConfiguration>siddhiConfiguration> ... </bucket>
All buckets execution plans should have identical queries query expressions (Queries has to use same stream names, same type of events and queries query expressions in all the buckets execution plans have to be in the same order)
But the input topics need NOT to be the same, by using different input topics users can distribute load when publishing to CEP.
- Deploy the buckets execution plans to CEP nodes.
Follow the sample Distributed Purchase Analyzer Sample and Fraud Analyzer step by step guide to better understand this functionality
...