如果我有一个分布式CEP设置,并将JMS代理作为主要输入。
现在,如果我们告诉客户端应用程序将事件发送到Topic X,事件将被分发到CEP集群中的每个节点,因为每个节点都将在同一主题X上进行侦听。 这会导致重复结果(假设我计算某些数据字段,现在因为每个节点都在接收重复数据,如果我有一个2节点集群,我的计数是实际值的两倍)
CEP可以解决JMS队列而不是主题吗?任何节点首先获取事件数据的方式将消耗队列中的消息? WSO2 CEP是否支持JMS队列?
答案 0 :(得分:2)
不,当前(CEP 2.0.1)不支持从JMS队列接收事件。 但如果这是您的要求,那么您可以编写自己的CEP addeptor(代理)来接收队列中的事件并将其推送到CEP。
创建自定义代理
通过从jar org.wso2.carbon扩展org.wso2.carbon.broker.core.BrokerTypeFactory,扩展org.wso2.carbon.broker.core.BrokerType和适当的Broker Type Factory,创建一个合适的Broker Type。 broker.core-4.0.5.jar
然后使用CEP配置该代理在wso2cep-2.0.1 / repository / conf中创建名为“broker.xml”的文件
并添加以下XML:
<brokerTypes xmlns="http://wso2.org/carbon/broker">
<brokerType class="<<class reference>>" /> ...
</brokerTypes>
查找有关在http://suhothayan.blogspot.com/2013/02/writing-custom-broker-for-wso2-cep.html
创建自定义代理的详细文档