扩展MVC与扩展多层应用程序

|| 据我所知,可以分布多层应用程序以利用可伸缩性。也就是说,当您的Web应用程序需要的资源超过单个服务器可以提供的资源时,您只需分发应用程序即可。 您可以将持久性层放在一台服务器中,将业务层放在另一台服务器中,将表示放在第三台服务器中。 此外,例如,您可以将业务层划分为许多服务,然后将每个服务放在单独的服务器中以应对这些许多请求。 因为从本质上讲,多层应用程序是通过诸如SOAP,套接字,.Net Remoting或RMI之类的中间件进行通信的组件,所以通过进一步分发其组件来扩展应用程序将相当容易。 问题是,使用MVC架构而不是N-Tier架构设计的应用程序如何?据我所知,模型,视图和控制器位于一台机器上,那么有人如何分发MVC架构的Web应用程序呢? 问候,     
已邀请:
应用程序的所有部分都必须在一台服务器上。使用MVC应用程序,您可以通过复制iis实例来扩展体系结构。例如,默认情况下,您有一台装有iis服务器的计算机和一台站点。为了扩展规模,您需要重新组织实例,例如添加一些iis服务器(默认副本)(称为后端服务器),并将服务器负载均衡负载添加到后端(称为前端服务器)。结束)     
如果您可以在控制器中调用Web服务以获取数据,那么您将无法调用另一个系统上的业务层。我对mvc的理解是,它旨在模式化系统的应用程序流。这并不意味着业务层结束或不必将业务层和域层放在同一系统上。     
我目前正在使用CakePHP(这是一个MVC框架)进行此工作。我已经为系统分配了数据库,这最终是扩展的瓶颈。 在应用程序级别上,模型,视图和控制器代码存在于应用程序服务器的每个实例上。控制器和视图级别按正常方式工作。所有的魔术都发生在模型的代码中。在进行读取或写入之前,模型将向目录服务器发出请求,以弄清楚数据存储在哪个分片上,或者在新条目的情况下,应将数据添加到哪个分片上。 数据的存储方式虽然有所变化。我使用MySQL作为键/值存储,但不使用联接,这与FriendFeed相似。 最终,这使熟悉MVC设计范式的任何人都能在系统上非常快地加快速度。在控制器和视图级别工作的开发人员甚至不需要了解系统如何分片(大部分情况下)。     

要回复问题请先登录注册