我正在寻找一个编排框架/引擎/工具包,以替换/升级现有软件,主要是因为可扩展性的限制。通过编排,我指异步和分布式执行通用任务和工作流程。
更具体地说,要求如下: - 包装和执行通用任务,如果依赖于语言,则使用Java - API以触发任务和工作流程 - 最好还包括调度功能 - 支持分布式架构和可扩展性(主要针对大量小型任务) - 持久性和弹性 - 高级工作流配置功能(按优先级、依赖关系等配置) - 监控和管理UI(或至少API)
现有系统是一个老式的单体服务(使用Java),其中大部分都有,包括执行逻辑本身,应尽可能保持不变。
有没有人遇到过类似的问题?我觉得这应该是相当普遍的,如果我必须完全自己实现它,那就很奇怪了。我在这里找到了一些问题(比如this和this),讨论编排和编舞系统的理论,但没有真正实现它的工具的实际例子。此外,我认为我们并不完全是在谈论微服务——任务并不是长时间而繁重的,它们只是许多在后台运行、执行许多类型的短任务。我不会为每种工作类型创建一个服务。
我目前也不寻找云和容器服务——据我所知,部署是一个不同的问题。
我找到的最接近的是Netflix Conductor engine,它通过运行一个编排服务器来管理在servlets中实现的任务(或任何语言的任何Web服务——加分)。然而,它似乎主要是为了安排工作流中的重任务而构建的,而不是运行大量小任务,这让我想知道在servlets中调用许多小任务的开销是多少。
有没有人对Conductor或其他我可以使用的工具有经验或任何输入?甚至对我的整个解决方案有什么看法?
编辑:我意识到这有点像“需要研究建议”,所以让我们简单地把它分为3个问题:
更具体地说,要求如下: - 包装和执行通用任务,如果依赖于语言,则使用Java - API以触发任务和工作流程 - 最好还包括调度功能 - 支持分布式架构和可扩展性(主要针对大量小型任务) - 持久性和弹性 - 高级工作流配置功能(按优先级、依赖关系等配置) - 监控和管理UI(或至少API)
现有系统是一个老式的单体服务(使用Java),其中大部分都有,包括执行逻辑本身,应尽可能保持不变。
有没有人遇到过类似的问题?我觉得这应该是相当普遍的,如果我必须完全自己实现它,那就很奇怪了。我在这里找到了一些问题(比如this和this),讨论编排和编舞系统的理论,但没有真正实现它的工具的实际例子。此外,我认为我们并不完全是在谈论微服务——任务并不是长时间而繁重的,它们只是许多在后台运行、执行许多类型的短任务。我不会为每种工作类型创建一个服务。
我目前也不寻找云和容器服务——据我所知,部署是一个不同的问题。
我找到的最接近的是Netflix Conductor engine,它通过运行一个编排服务器来管理在servlets中实现的任务(或任何语言的任何Web服务——加分)。然而,它似乎主要是为了安排工作流中的重任务而构建的,而不是运行大量小任务,这让我想知道在servlets中调用许多小任务的开销是多少。
有没有人对Conductor或其他我可以使用的工具有经验或任何输入?甚至对我的整个解决方案有什么看法?
编辑:我意识到这有点像“需要研究建议”,所以让我们简单地把它分为3个问题:
- 我是否正确地寻找了一个针对上述要求的编排解决方案?
- 有没有人对Netflix Conductor有经验?对此有什么反馈?
- 它有好的竞争对手吗?