我的流定义如下: -
IngestToBroker = custom-producer --spring.cloud.stream.bindings.output.content-type = application / json --spring.cloud.stream.bindings.output.producer.headerMode =原始> :Kafkatopic1
DataProcessor =:Kafkatopic1> custom-processor - spring.cloud.stream.bindings.output.content-type = application / json --spring.cloud.stream.bindings.input.consumer.headerMode = raw --spring.cloud.stream.bindings.output .producer.headerMode = raw> :kafkatopic2
myCountsOne =:DataProcessor.custom-processor> field-value-counter --field-name = messageStatusOne
myCountsTwo =:DataProcessor.custom-processor> field-value-counter --field-name = messageStatusOne
MyFileSink =:kafkatopic2> file --directory = C:\ usr \ sdflogs --name = My-File-Sink2
当前情景
1) IngestToBroker 和 DataProcessor 效果很好。我得到如下所需的JSON输出,它被发送到KafkaTopic1,然后通过处理器和kafkaTopic2,最后发送到文件。
{ “messageStatusOne”: “收到”, “DateTimeOne”: “2017.09.26.22.03.34”, “messageStatusTwo”: “处理过的”, “DateTimeTwo”: “2017.09.26.22.03.34”} {“messageStatusOne”:“ERROR”,“DateTimeOne”:“2017.09.26.21.06.45”,“messageStatusTwo”:“NOT AVAILABLE”,“DateTimeTwo”:“2017.09.26.21.06.45”} { “messageStatusOne”: “收到”, “DateTimeOne”: “2017.09.26.21.06.52”, “messageStatusTwo”: “处理过的”, “DateTimeTwo”: “2017.09.26.21.06.52”} { “messageStatusOne”: “REVIEW”, “DateTimeOne”: “2017.09.26.21.06.59”, “messageStatusTwo”: “HOLD”, “DateTimeTwo”: “2017.09.26.21.06.59”}
自定义生产者和自定义处理器是我部署的独立应用程序,它基本上改变了数据,前者每隔几秒就推送一个新的JSON记录。
2)所有流定义都是如此。它们都运行良好,我得到了所需的JSON。 字段值计数器定义的 EXCEPT myCountsOne和myCountsTwo
问题 1)Dashboard PIC for Analytics on my Local SCDF server
似乎不活跃。度量和可视化没有下降。我真的需要这个工作,我对SCDF很新。我错过了什么?我该怎么做到这个?
2)另外在sideNote上我试图用SCDF配置MarkLogic但是SCDF会接受ODBC驱动程序吗?如果我在问这一切时听起来很愚蠢,请原谅我。谢谢。
更新我刚刚在Spring Data Flow Startup控制台中发现了这个错误
“无法获取jedis连接嵌套异常是redis.clients.jedis.exceptions.jedisConnectionException”
我们是否需要将任何redis依赖项添加到我的自定义处理器中,该处理器部署为独立应用程序?这是我的Spring Boot版本 - 1.5.6.RELEASE 。谢谢。
答案 0 :(得分:0)
使用Analytics in SCDF时,SCDF服务器和Analytics-apps 都必须共享一个共同的redis-cluster配置。
我刚刚在Spring Data Flow Startup控制台中发现了这个错误 "无法获取jedis连接嵌套异常是redis.clients.jedis.exceptions.jedisConnectionException"
此要求为enabled by default;如果SCDF服务器无法访问redis-cluster,您会注意到此错误。您可以根据需要选择禁用它。
我们是否需要将任何redis依赖项添加到我的自定义处理器中,该处理器部署为独立应用程序?
如果处理器只是向下游应用程序发送汇总数据,则您不需要。实际上只需要分析 - 接收器应用程序。在您的情况下,请确保SCDF服务器和field-value-counter
共享相同的redis-cluster配置。
最后,1.3版本系列正在积极开发中,里程碑版本正在进行中。具体来说,仪表板完全重写 - 可能存在错误。虽然可以使用此版本(并欢迎反馈和错误报告),但我建议您切换到最新的GA版本。在撰写本文时,1.2.3.RELEASE是最新的发布版本。
答案 1 :(得分:0)
为了进一步简化手头的问题,让我们在您的环境中尝试以下流。一旦您成功使用它,您就可以查看其他可能出错的流。
流:
dataflow:> stream create foo --definition“http --port = 9000 | field-value-counter --fieldName = messageStatusOne --name = bar”--deploy
数据:
dataflow:> http post --target http://localhost:9000 --data {“messageStatusOne”:“RECEIVED”,“DateTimeOne”:“2017.09.26.22.03.34”,“messageStatusTwo”:“PROCESSED”,“ DateTimeTwo “:” 2017.09.26.22.03.34" } POST(text / plain)http://localhost:9000 {“messageStatusOne”:“RECEIVED”,“DateTimeOne”:“2017.09.26.22.03.34”,“messageStatusTwo”:“PROCESSED”,“DateTimeTwo”:“2017.09.26.22.03.34 “} 202接受
列表:
dataflow:>field-value-counter display --name bar
Displaying values for field value counter 'bar'
╔════════╤═════╗
║ Value │Count║
╠════════╪═════╣
║RECEIVED│ 1║
╚════════╧═════╝