【问题标题】:Azure Logic Apps - HTTP communication between microservicesAzure 逻辑应用 - 微服务之间的 HTTP 通信
【发布时间】:2018-07-27 23:03:59
【问题描述】:

逻辑应用是否被视为微服务?如果是这样,是否从逻辑应用进行 HTTP API 调用,是否使用 HTTP/Function/APIM 连接器,而不是违反微服务之间的直接 HTTP 通信?

如果可能,永远不要依赖多个微服务之间的同步通信(请求/响应),即使是查询也不行。每个微服务的目标是自治并可供客户端消费者使用,即使作为端到端应用程序一部分的其他服务已关闭或不健康。如果您认为您需要从一个微服务调用其他微服务(例如执行数据查询的 HTTP 请求)以便能够向客户端应用程序提供响应,那么您的架构在以下情况下将不会有弹性一些微服务失败了。

此外,微服务之间存在 HTTP 依赖关系,例如在使用 HTTP 请求链创建较长的请求/响应周期时,如图 4-15 的第一部分所示,不仅会使您的微服务不自治,而且它们的性能也会受到影响一旦该链中的一项服务表现不佳。

来源:https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/communication-in-microservice-architecture

【问题讨论】:

    标签: azure microservices azure-logic-apps


    【解决方案1】:

    是的,逻辑应用主要是基于 Http 的服务。它是否是“微”真的无关紧要,因为“微”太抽象而没有任何真正的意义。这曾经是一个有用的营销术语,但它在科技时装秀上的巡演已经结束。所以,别想了。 ;)

    作者试图表达的是,您应该避免在应用架构中链接依赖项。 A 等待 B 等待 B 等待 C 等待 D 等待 E 等等...这是图中的第一行。

    相反,Basket 可以自行检查 Catalog,然后调用 Ordering,同时在后台检查 Inventory。你只有一级而不是 4 级。

    【讨论】:

    • 好的,听起来我们可以将 LA 视为一个 API 网关,可以进行许多后续 API 调用并汇总结果。那么嵌套逻辑应用呢?
    • 您可以以任何您想要的方式堆肥逻辑应用程序、函数、API 应用程序等,没有什么能阻止您。嵌套逻辑应用?当然,把自己打晕,但不要发疯。尽量让事情尽可能简单。我见过太多垃圾应用,因为设计者专注于一些“最佳实践”或流行模式。
    • 是的,我想尽可能避免使用垃圾应用。 ;) 谢谢。
    猜你喜欢
    • 2016-06-10
    • 2016-03-05
    • 2018-01-22
    • 1970-01-01
    • 2021-06-20
    • 2016-08-10
    • 2019-01-18
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多