我正在寻找一个微服务编排器并遇到了 Uber Cadence。我已经阅读了文档并在开发设置中使用了它。
我对生产场景有几个问题:
是否建议为工作流及其使用的不同活动设置一个专门的任务列表?或者,我们应该为所有人使用一个任务列表吗?这个决定是否会影响可扩展性或性能?
当我们添加一个新的工作机器时,在同一台机器上为不同的活动/工作流运行所有工作人员是一种常见的做法吗?例子:
Worker.Factory factory = new Worker.Factory("samples-domain"); Worker helloWorkflowWorker = factory.newWorker("HelloWorkflowTaskList"); helloWorkflowWorker.registerWorkflowImplementationTypes(HelloWorkflowImpl.class); Worker helloActivityWorker = factory.newWorker("HelloActivityTaskList"); helloActivityWorker.registerActivitiesImplementations(new HelloActivityImpl()); Worker upperCaseActivityWorker = factory.newWorker("UpperCaseActivityTaskList"); upperCaseActivityWorker.registerActivitiesImplementations(new UpperCaseActivityImpl()); factory.start();
或者我们应该在专用机器上运行每个活动/工作流工作者?
在单个工作机器中,我们可以为给定的活动创建多少工作人员?例如,如果我们有活动 HelloActivityImpl,我们是否应该在同一台工作机器上为它创建多个工作人员?
我还没有找到任何用于生产设置的文档。例如,如何在生产环境中安装和配置 Cadence 服务?如果有人能指导我找到正确的材料,那就太好了。
在一些视频教程中提到,为了实现高可用性,我们可以跨多个数据中心设置 Cadence 服务。如何为此配置 Cadence 服务?