Microservices 仅针对微服务编排的单独微服务?

Microservices 仅针对微服务编排的单独微服务?,microservices,camunda,orchestration,Microservices,Camunda,Orchestration,我有一些微服务,其中每个微服务都有用于CRUD操作的REST端点。 我必须创建一个工作流,该工作流将从一个微服务开始,并带有一些初始输入,但稍后来自微服务的输出可以用作其他微服务的输入。可以对这些RESTAPI进行一些同步和异步调用 我已经寻找了一些工作流引擎,但我不认为我可以在不编写任何java代码的情况下创建我的工作流 我是否应该为微服务编排编写单独的微服务?该编排微服务将了解确切的工作流,并且可以配置启动工作流所需的输入,还可以使用一些第三方工作流引擎(如Camunda)来存储工作流的定义

我有一些微服务,其中每个微服务都有用于CRUD操作的REST端点。 我必须创建一个工作流,该工作流将从一个微服务开始,并带有一些初始输入,但稍后来自微服务的输出可以用作其他微服务的输入。可以对这些RESTAPI进行一些同步和异步调用

我已经寻找了一些工作流引擎,但我不认为我可以在不编写任何java代码的情况下创建我的工作流

我是否应该为微服务编排编写单独的微服务?该编排微服务将了解确切的工作流,并且可以配置启动工作流所需的输入,还可以使用一些第三方工作流引擎(如Camunda)来存储工作流的定义

仅为微服务编排使用单独的微服务是否正确?到目前为止,现有的微服务还不知道其他的微服务。在将一个微服务的输出用作其他微服务的输入之前,可能需要对其进行按摩

我已经寻找了一些工作流引擎,但我不这么认为 我可以在不编写任何java代码的情况下创建工作流

这取决于您的业务流程和工作流的复杂性。通常是的,您需要编写一些代码来实现它

我是否应该为微服务编写单独的微服务 配器?此编排微服务将知道确切的 工作流,并且可以配置启动工作流所需的输入 工作流,它还可以使用一些第三方工作流引擎,如 Camunda用于存储工作流的定义

是的,你能做到。我在使用微服务的系统上做了类似的事情。从长远来看,这将是一个非常好的主意,因为您也可以基于环境配置工作流。例如,在开发机器上,您的工作流/配置会略有不同。这对于开发人员或QA测试他们的解决方案是切实可行的。另一方面,在登台/生产方面,您可以预先定义客户设置/编排,如果获得新客户或用户,您可以随时重用这些设置/编排

仅仅为客户提供单独的微服务是否正确 微服务编排?到目前为止,现有的微服务已经 不知道其他的微服务。有可能 在使用as之前,需要对一个微服务的输出进行按摩 其他微服务的输入

是的,您可以毫无问题地做到这一点,尽管我会小心使用orchestration这个名称,因为它在微服务体系结构(Docker、Docker Swarm、Kubernetes)的上下文中有另一个含义。类似的例子可能是某种端到端测试或跨微服务测试微服务。这将测试跨微服务业务运营并断言结果。通常业务操作涉及一个以上的微服务,所以为了测试,您可以使用这种方法。这个微服务将从多个微服务调用API,并根据您的业务规则测试结果和场景。另一个例子是seeder micro service(这似乎与您在这里尝试的非常相似)。此播种机微型服务将负责将测试数据播种(创建)到您的微型服务。此测试数据是一些基本的设置/配置数据,您需要这些数据才能使micro service业务流程正常工作。这对于需要快速设置环境的开发机器或某些测试环境非常方便。使用此seeder micro服务,您可以轻松设置、执行工作或测试,并根据需要处理环境(数据)。这对于开发机器的设置特别有用,但也可以用于共享测试环境等。这两个示例都是微型服务,它们服务于您的需求,使您的生活更容易与系统一起工作

关于这一点的最后一点是:

到目前为止,现有的微服务还不知道另一个 微服务

它们应该以一种不知道内部实现或数据(独立数据库)的方式相互抽象,但它们应该相互通信,以便执行业务操作,而业务操作有时是跨微服务的。如支付微服务和网上商店订单微服务的典型示例。因此,他们相互了解并交流是很好的,但这种交流必须非常仔细地设计,以避免一些常见的陷阱。
它们通常通过HTTP或其他协议的直接调用或通过ApacheKafka或RabbitMq等消息队列相互通信。您可以在本文中阅读更多信息。

是的,您应该在单独的服务中介绍编排部分。是的,正如您已经怀疑的那样,使用BPMN2流程引擎作为编排器。是的,这可能包括编写一些代码,主要用于数据映射或连接器。 好处包括,例如ootb支持:

  • 数据的状态管理和长时间运行的进程/持久性
  • 版本控制(!)
  • 重试和错误处理
  • 在出现问题时修改状态和日期的工具
  • 超时,并行执行(如有必要)
  • 可伸缩性
  • 图形化过程模型
  • 审计跟踪
  • 以及基于BPMN 2模型的监控工具中的端到端可见性
  • 能够为更复杂的规则包含业务规则任务(DMN)
  • 推拉通信模式与a/sync通信的组合
  • 通过BPMN 2实现业务IT协调
  • 对各种BPMN 2事件的支持
  • 标准化(技能、安全性、软件质量、功能)
这是一个伟大的相关艺术