【问题标题】:Uber Cadence production setupUber Cadence 制作设置
【发布时间】:2021-01-03 11:35:53
【问题描述】:

我在寻找微服务编排器时遇到了 Uber Cadence。我已经阅读了文档并在开发设置中使用了它。

我有几个关于生产场景的问题:

  1. 是否建议为工作流及其使用的不同活动设置一个专门的任务列表?或者,我们应该为所有人使用一个任务列表吗?此决定是否会影响可扩展性或性能?

  2. 当我们添加一个新的工作机器时,在同一台机器上为不同的活动/工作流运行所有工作人员是一种常见的做法吗?示例:

    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();
    

    或者我们应该在专用机器上运行每个活动/工作流工作者?

  3. 在单个工作机器中,我们可以为给定的活动创建多少个工作人员?例如,如果我们有活动 HelloActivityImpl,我们是否应该在同一台工作机器上为它创建多个工作人员?

  4. 我没有找到任何用于生产设置的文档。例如,如何在生产中安装和配置 Cadence 服务?如果有人能指导我找到正确的材料,那就太好了。

  5. 在一些视频教程中提到,为了实现高可用性,我们可以跨多个数据中心设置 Cadence 服务。如何为此配置 Cadence 服务?

【问题讨论】:

    标签: cadence-workflow temporal-workflow


    【解决方案1】:
    1. 除非您需要对一组活动进行单独的流量控制和速率限制,否则没有理由为每个工作进程使用多个任务队列。

    2. 正如我在 1 中提到的,我会将您的代码重写为:

       Worker.Factory factory = new Worker.Factory("samples-domain");
       Worker worker = factory.newWorker("HelloWorkflow");
       worker.registerWorkflowImplementationTypes(HelloWorkflowImpl.class);
       worker.registerActivitiesImplementations(new HelloActivityImpl(), new UpperCaseActivityImpl());
       factory.start();
      
    3. 没有理由为同一个活动创建多个工人。

    4. 不确定 Cadence。 Here is 展示如何部署到 Kubernetes 的 Temporal 文档。

    5. 此文档尚不可用。我们Temporal 正在努力。

    【讨论】:

    • 您好 Maxim,非常感谢您回答我的所有问题。我有几个后续问题,主要是关于可用性的。 1. 我了解如果某个工作人员出现故障,其他工作人员可以接管并恢复工作流执行。如果 Cadence 服务器出现故障会怎样?它是单点故障还是我们可以在主从模式下设置它的多个实例? 2. 关于为 Temporal 设置的跨 DC,是否有任何时间表何时提供文档?此功能对我们在生产部署中非常有用。
    • 我认为 community.temporal.io 是后续问题的更好地方。
    【解决方案2】:

    您也可以使用 Cadence helmchart https://hub.helm.sh/charts/banzaicloud-stable/cadence

    我正在积极与 Cadence 团队合作,为社区提供操作文档。它对那些不想在 K8s 上运行的人很有用,比如我自己。随着我们取得进展,我稍后会回来。

    当前草稿版本:https://docs.google.com/document/d/1tQyLv2gEMDOjzFibKeuVYAA4fucjUFlxpojkOMAIwnA

    将很快发布到 cadence-docs。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      相关资源
      最近更新 更多