微服务体系结构中的API调用
我不确定我的问题是否可以解释,但我会尽量在这里解释。我目前正在探索和使用微服务体系结构,以了解其工作原理并了解更多信息。我主要了解事情是如何工作的,API网关在这个体系结构中的角色是什么,等等 所以我还有一个理论问题。例如,假设有两个服务,即事件(管理可能的事件)和服务票证(管理与特定事件相关的票证)(可能有许多票证)。所以这两个服务实际上是相互依赖的,但它们有一个独立的数据库,是完全隔离和松散耦合的,就像在“理想”的微服务环境中一样 现在想象一下,我想获取事件和与该事件相关的所有票证,并将其显示在移动应用程序或web spa应用程序或其他任何应用程序中。在这种情况下,调用多个服务/URL来获取数据并输出到UI完全可以吗?或者是否有更好的方法获取和聚合这些数据 从我阅读的不同资料来看,从另一个服务调用一个服务会增加延迟,使服务相互依赖,一个服务的未来变化会破坏另一个服务,等等,所以这根本不是一个好主意微服务体系结构中的API调用,api,microservices,Api,Microservices,我不确定我的问题是否可以解释,但我会尽量在这里解释。我目前正在探索和使用微服务体系结构,以了解其工作原理并了解更多信息。我主要了解事情是如何工作的,API网关在这个体系结构中的角色是什么,等等 所以我还有一个理论问题。例如,假设有两个服务,即事件(管理可能的事件)和服务票证(管理与特定事件相关的票证)(可能有许多票证)。所以这两个服务实际上是相互依赖的,但它们有一个独立的数据库,是完全隔离和松散耦合的,就像在“理想”的微服务环境中一样 现在想象一下,我想获取事件和与该事件相关的所有票证,并将其显
很抱歉,如果我在重复一个问题,而这个问题已经在某个地方被问到了(尽管我找不到),但我需要一个更早遇到这个问题的人的意见,并且可以更好地解释这里的流程。在我使用基于云的服务(主要是Microsoft Azure)的经验中,一个服务调用另一个服务的延迟确实存在,但可以认为是最小的。与用户设备通过他们碰巧拥有的互联网计划进行呼叫所涉及的未知延迟相比,这一点尤其正确 无论是SPA应用程序还是其他服务,始终会有依赖于服务及其定义接口的消费客户端。因此,在您描述的场景中,必须对两个服务的有效负载进行聚合 基于此,我看到通过使用一个服务来处理客户端请求、聚合来自n个服务的结果并做出相应响应,从而提高了性能。这确实会导致依赖性,但随着服务的发展,可能会同时激活多个版本的服务,从而允许您在适当的时候降低旧版本的价值 我希望这有帮助 正在调用多个服务/URL以获取数据并输出到UI 在这种情况下完全可以吗?还是有更好的方法来取 并汇总这些数据
对于您的情况,我会从潜在用户那里建议选项1或选项2(如果您有高要求的UI)。在某些情况下,选项1就足够了,拥有第三个微服务可能会有点过头,但有时这也是一个选项。可选建议
您可以在任何最适合的服务中维护读取表(非规范化)。为什么因为CQR适用于需要的地方,所以CQR最适合于大型和复杂的应用。它在您的系统中引入了复杂性,您获得的利润更少,而且更令人头痛。很好的解释,我非常喜欢您的方法。然而,我还有一个关于第2号方法的问题。您是否建议新的第三个微服务将充当一个只聚合数据的层?因此,例如,我们可以将其实现为事件驱动(例如,新的第三个微服务将被订阅并侦听事件和票证),并且每当新数据被推送到或更新到事件和票证时,它都可以接收新数据并将其缓存/存储到自己的存储器t中