我正在创建流分析应用程序,其中每个分析/功能都将作为微服务实现,以便该分析可以稍后在不同的项目中使用。
我正在使用 Lagom 来创建微服务。我是 lagom 的新人,这就是为什么我遇到一些疑问。
我不明白将数据流(来自多个传感器)发布到微服务然后该微服务将数据发布到 kafka 主题的最佳方法是什么。
Lagom 是否在服务描述中提供流消息功能
ServiceCall[源[字符串,未使用],源[字符串,未使用]]
这是从数百个 WiFi 传感器发布数据流(大数据)的正确方法吗?它是否有能力处理近实时(= 5秒)接收的大量数据流?
其次,在将数据发布到kafka主题时为什么我必须
实施持久实体(Lagom 推荐)?因为卡夫卡
本身保证消息至少传递一次
我的应用程序不是CRUD应用程序,它只支持处理流数据。
Lagom 的流式调用使用 WebSocket。它建立在 Play 的 WebSocket 支持之上,可以扩展到数百万个连接的客户端。我不会将数百个 wifi 传感器称为大量数据,Lagom 应该可以轻松处理它,并且 Lagom 也可以轻松水平扩展,因此,如果您正在进行的处理很繁重,您可以轻松地将处理分散到许多节点。
Lagom 目前不支持将传入的 WebSocket 流发布到 Kafka。虽然 Kafka 确实保证至少一次一旦消息发布到 Kafka,当第一次将该消息放入 Kafka 时,没有这样的保证。例如,如果您执行副作用(例如更新数据库),然后发布消息,则无法保证如果应用程序在更新数据库和将消息发布到 Kafka 之间崩溃,则该消息最终会被发布到 Kafka(事实上不会,该消息将会丢失)。这就是为什么 Lagom 鼓励仅将数据库事件流发布到 Kafka,因为以这种方式发布事件日志确实可以保证随后需要发送到 Kafka 的任何数据库操作至少发生一次。但是,如果您没有产生副作用(听起来您没有这样做),那么这可能与您无关。在这种情况下,我建议直接使用 akka-streams-kafka (Lagom 的 Kafka 支持是基于它的)。
我提出了一个参考您的用例的问题here https://github.com/lagom/lagom/issues/659.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)