Nei*_*l W 3 architecture microservices blazor
我的应用程序的核心由一套微服务组成,每个微服务主要使用 DDD 架构。
在标准 MVC 解决方案中,客户端将访问我的控制器,控制器将与我的微服务交互。
在 Blazor 服务器设置中,方法类似。
但是,通过 Blazor WebAssembly(托管)设置,我有机会直接从 Blazor WebAssembly 客户端引用我的微服务。
这明智吗?
或者我最好在 Blazor 服务器上创建一个外观(该服务器进而访问微服务)并仅从 Blazor WebAssembly 客户端与该外观通信?
我的 Blazor 服务器有自己的引用微服务的需求,我正要在客户端上注册微服务,然后想知道这是否明智。
它在很大程度上取决于您的架构及其约束,并且会考虑正确的答案。
最好的朋友
您可以使用 BFF(前端后端)模式,您的面孔。在这种情况下,另一个微服务将充当 Blazor 应用程序和微服务环境之间的网关。
因此,前端不需要知道要查找哪个服务中有哪些信息。通常,这会简化前端的开发。此外,BFF 可以处理跨领域的问题,例如身份验证。
但是,您引入的新微服务无助于解决您的业务问题。您正在添加另一层意外的复杂性。
此外,通过 BFF,您可以在服务之间创建一种依赖关系。如果您更改或添加微服务的功能,您还需要更新 BFF。
直接打电话给他们
如果您的微服务具有一种可以向公众(您的 Blazor 客户端)公开的 HTTP (REST) API(顺便说一句,并非每个微服务都需要),则可以选择直接从客户端调用它们。
每个服务都需要处理跨领域的问题,例如自身的身份验证。客户端需要跟踪与服务的多个潜在连接。它们将具有不同的 URL,但可能还需要不同的标头等。
结论
这取决于。您最了解自己的架构,并且有很多文章讨论 BFF 的优缺点。我建议从这篇文章开始https://learn.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/direct-client-to-microservice-communication-versus-the-api -网关模式。
希望我的回答能帮助您找到答案。:)
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |