想象一个处理系统,它从其他内部系统或从互联网公开的 REST 端点接收数据。收到后,一组(后台)任务(根据数据库或其他 Web 服务计算来自输入的响应)并行处理数据,一些连续的一个接一个,或完成少数并行任务的一些任务。最终(边缘)任务可以将结果发送到外部 Web 服务或存入数据库表。
这些任务可以设计为一个简单的服务,处理message-queues
由其他此类服务传递给它的消息,并将结果发送到另一个队列以进行进一步处理。系统可以使用流来处理,而不是队列。我发现这种方法(编写由消息代理连接的服务)必须重复处理它们的故障场景、扩展和吞吐量。
是否有任何特定的框架(如 Flink 或 Samza 或 Storm 或 Airflow 或 Siddhi 或 Hazelcast Jet)来实现这些任务并将它们部署到一个负责扩展和故障处理的集群中,而不是将每个任务实现为详细的服务(例如。 ,在春天)并独立缩放它们。