azure - 如何在azure上设计微服务系统并使用工作流程按顺序调用它们

标签 azure azure-functions microservices azure-logic-apps azure-function-app

我在 .net core 2.2、MongoDB 上创建了大约 10 个微服务,并将它们部署在 Azure Kubernetes 上,但我很难理解如何在服务器上管理它。 所有服务都是相互独立的,但必须按照一定的顺序调用进行处理。 我很困惑设计一种可以根据需要执行这些服务的工作流类型架构的最佳解决方案是什么(Azure 逻辑应用程序或功能应用程序或任何其他建议) 谢谢,

最佳答案

我猜您正在寻找的是所谓的传奇模式,可以通过编排或编排来实现。您可以在这里找到很好的解释:

https://microservices.io/patterns/data/saga.html

PS:对于Azure Functions,您可以使用Durable Functions并非常轻松地实现编排:

 public static class OrderSaga
    {
        [FunctionName("OrderSaga")]
        public static async Task<bool> RunOrchestrator(
            [OrchestrationTrigger] DurableOrchestrationContext context)
        {
            var orderId = context.GetInput<Guid>();

            Task<bool> orderResponse = context.CallActivityAsync<bool>("OrderActivity", orderId);
            Task<bool> paymentResponse = context.CallActivityAsync<bool>("PaymentActivity", orderId);

            await Task.WhenAll(orderResponse, paymentResponse);

            if (orderResponse.Result == false || paymentResponse.Result == false)
            {
                await context.CallActivityAsync("RollbackOrderActivity", orderId);
                await context.CallActivityAsync("RollbackPaymentActivity", orderId);

                return false;
            }

            return true;
        }

关于azure - 如何在azure上设计微服务系统并使用工作流程按顺序调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58933118/

相关文章:

c# - Azure Function - 在 Visual Studio 2017 中为不同环境添加不同的设置文件

.net - 微服务如何在异步通信中进行授权?

亚特实验室 CI : Multiple project

azure - 动态Azure服务应用程序是否支持交换插槽

azure - 从 VM 外部访问 Azure 虚拟机文件结构

c# - 尝试将我的 Web 应用程序从 VS Enterprise 2015 update 1 发布到 azure 时出错 :

c# - Azure函数: How to manage Durable Functions with Blob Triggers?

asp.net - Azure 网站打开了 login.microsoftonline.com(使用你的工作或学校帐户登录)

azure - 更新应用程序设置时,Azure Functions 是否会引发 503 错误?

esb - 为什么微服务架构不基于企业服务总线?