...
In WSO2 CEP, distributed processing can be enabled at per execution plan level where by only those identified execution plans will use the distributed cache for processing,
Follow below steps to enable distributed processing to an execution plan.
Create distributed CEP execution plans with the following properties
Warning | ||
---|---|---|
| ||
Not following the below conventions will lead to unpredictable results! |
Info | ||
---|---|---|
| ||
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"> |
...
Follow below steps to enable distributed processing to an execution plan.
Create distributed CEP execution plans with the following properties
Warning title Warning Not following the below conventions will lead to unpredictable results! 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 Siddhi Configurations Snapshot time interval : 0 Distributed processing : true
These can be added to the configuration file as below.
Code Block language html/xml linenumbers true <executionPlan name="FraudAnalyzer" statistics="enable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> ... <siddhiConfiguration> <property name="siddhi.enable.distributed.processing">true</property> <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> </siddhiConfiguration> ... </executionPlan>
All execution plans should have identical query expressions (Queries has to use same stream names, same type of events and query expressions in all the 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 execution plans to CEP nodes.
...