我正在构建一个模拟城市公共交通网络的小应用程序。我们的想法是每个公交车站都是一个接收器并监听来自其他公交车站的信息,从而计算公交车将出现的时间。 具有唯一ID的总线站存储在数据库中,我需要生成并运行具有唯一ID的接收器数量。我该怎么做?
我的猜测是可以使用Spring Cloud Data Flow完成的任务,它将使用(--id)属性启动.jar文件,并使用@Value表示法注入。但我无法理解如何实现这一点。
还找到this,但它没有帮助。
答案 0 :(得分:0)
你有一些正确的概念,但你的实现可能需要一些帮助。
因此,Spring Cloud Dataflow是一个编排引擎,可以部署启动应用程序并使用中间件连接它们。
这些应用程序可以是Streaming应用程序,这意味着他们使用Spring Cloud Stream作为抽象层与中间件(Rabbit或Kafka)进行通信,其核心有三种类型的应用程序:Sources(数据发送器),处理器(数据转换)和接收器(数据接收器)
您使用数据流将这些组合并部署到运行时(Local,CloudFoundry,K8S,YARN)
所以,是的,SCDF可以用于你的任务,但是你不想为每个总线创建一个接收器,这会滥用你的资源。
您可以使用一个简单的流来捕获总线(源)中的数据,也可以进行一些转换并将其下载到数据库中
如果您对处理它们感兴趣,可以创建一个侦听存储在数据库中的消息的点按。
您可以点击该信息并让客户端向下游广播(您的显示在每个公交车站)
因此,例如,您可以只有一个接收器,但是有一个websocket,例如每个客户端连接并传递一个id。然后,您可以将通过该ID过滤的事件转发给此特定客户端。
这是一种更有效的方法来解决这个问题。