gpt4 book ai didi

c# - .NET 分布式分层应用程序

转载 作者:太空狗 更新时间:2023-10-29 21:54:06 25 4
gpt4 key购买 nike

多年来,我一直在使用 .NET 开发 n 层应用程序。但我仍然不知道如何将层/层 (dll) 分发到其他服务器。

比方说,我有一个包含 4 个项目的 MVC Web 应用程序,即 MVC (UI)、业务、服务和数据。如果所有类库 dll 都在一台服务器上,一切都可以正常工作。

如果我想通过将服务层 (dll) 和数据层 (dll) 分发到其他 2 个服务器来扩展应用程序,我是否应该将类库转换为 WCF 服务库项目(使用 TCP 或管道作为通信协议(protocol))更好的性能) ?或者我应该使用其他技术,如 .NET 远程处理或 Web API?

工作量会很大吗?

这是创建多层应用程序的目的之一吗?

谢谢。

更新:

您是否有任何链接(来自 Microsoft)详细说明如何通过分发 DLL 将 n 层架构应用程序扩展到多个服务器?

最佳答案

If I want to scale out the application by distributing the Service layer (dll) and Data layer (dll) to other 2 servers, should I convert the class library to WCF Service Library project (with TCP or pipe as communication protocol for better performance) ?

是的,因为它们位于不同的机器上,您需要某种超越简单 DLL 调用的通信机制。

Or should I use other technology like .NET remoting or Web API?

您选择哪种方法取决于许多因素,例如复杂性、性能......有很多选择,例如

  • WCF 网络服务
  • 使用 WebApi 进行简单的 REST 调用
  • 消息总线即NServiceBus
  • ...

显然,远程调用也会变慢,从而对性能等产生潜在影响。

Will that be a lot of work?

这将是更多的工作,在我看来,“更多的工作”应该是合理的。使您的架构尽可能简单或更好,只在真正需要时才复杂。

另一种方法可能是拥有一些部署管道,将您的整个应用程序部署在不同的服务器实例上,并具有一些智能负载平衡策略。在这种情况下,您唯一需要注意的是在您的实例之间正确共享 session (无状态会更好;))。

关于c# - .NET 分布式分层应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23468057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com