繁体   English   中英

集成WSO2 Siddhi CEP和Kafka

[英]Integrating WSO2 Siddhi CEP and Kafka

我目前正在整合WSO2的Siddhi CEP和Kafka。 我想通过接收来自Kafka的事件来产生Siddhi流。 接收到的Kafka数据为JSON格式,其中每个事件如下所示:

{  
   "event":{  
      "orderID":"1532538588320",
      "timestamps":[  
         15325,
         153
      ],
      "earliestTime":1532538
   }
}

我试图在WSO2流处理器中运行的SiddhiApp看起来像这样:

@App:name('KafkaSiddhi')
@App:description('Consume events from a Kafka Topic and print the output.')

-- Streams
@source(type='kafka', 
topic.list = 'order-aggregates',
partition.no.list = '0',
threading.option = 'single.thread',
group.id = 'time-aggregates',
bootstrap.servers = 'localhost:9092, localhost:2181',
@map(type='json'))
define stream TimeAggregateStream (orderID string,timestamps 
object,earliestTime long);

@sink(type="log")
define stream TimeAggregateResultStream (orderID string, timestamps 
object, earliestTime long);

-- Queries
from TimeAggregateStream 
select orderID, timestamps, earliestTime
insert into TimeAggregateResultStream;

运行此应用程序应将所有正在更新的数据记录在我正在侦听的订单聚合Kafka集群中。 但是单击运行时,我看不到任何输出。

我可以说WSO2流处理器和订单聚合主题之间存在某种类型的交互,因为每当我为流模式使用不一致的数据类型运行应用程序时,错误消息就会实时输出。 错误消息如下所示:

[2018-07-25_10-14-37_224] ERROR 
{org.wso2.extension.siddhi.map.json.sourcemapper.JsonSourceMapper} - 
Json message {"event":{"orderID":"210000000016183","timestamps": 
[1532538627000],"earliestTime":1532538627000}} contains incompatible 
attribute types and values. Value 210000000016183 is not compatible with 
type LONG. Hence dropping the message. (Encoded) 

但是,如果我正确设置了架构,则在运行应用程序时根本不会收到任何输出。 我真的不知道该如何理解。 当我尝试通过在包含“插入到”的行中插入断点来进行调试时,调试器永远不会在该行停止。

谁能提供一些有关如何解决此问题的见解?

我们在最新版本的扩展中添加了对json映射器扩展的对象支持。 请下载扩展名[1]并替换/ lib中的siddhi-map-json jar。

[1] https://store.wso2.com/store/assets/analyticsextension/details/0e6a6b38-f1d1-49f5-a685-e8c16741494d

最好的问候,拉明杜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM