什么标准开始考虑3 Tier Arch的公共网站

时间:2012-01-31 19:17:49

标签: architecture scalability

在决定使用3T或2T arch进行公共网站之前,是否有人应该知道/考虑的任何标准,以避免在这里出现任何混淆我将Tier称为独立的物理服务器并且Web浏览器< strong>不算作一个等级,所以说3T:

  • T1- Web服务器:托管公共前端UI的位置,可以是MVC,JSF,ASP.NET Web表单,等等。
  • T2- App:您在哪里托管您的企业Web服务SOAP,REST等...
  • T3- DB:您的数据库服务器,Oracle,SqlServer等......

其中2T仅表示Web服务器和数据库,业务仍然是独立的,但在运行Web服务器的同一进程中执行。

有人可能会说3T更具可扩展性。如果我们正在思考垂直方向,但是我们不会通过在负载均衡器后面放置更多的Web服务器实例来实现水平可扩展性,那是真的吗?是否有任何应该知道的标准或备忘单,感谢专家对此的意见

如果stackoverflow不适用于这些类型的问题,我不知道还剩下什么? int swapping?

2 个答案:

答案 0 :(得分:1)

我发现这个博客谈论的是某个产品我认为但同样的原则让我相信http://www.ektron.com/billcavablog/your-questions-answered-3tier-or-2tier/

作者列出了五个标准(属性)来帮助做出决定:

  
      
  • 安全性 - 某些组织(如金融机构)拥有网络策略,声明前向网站无法直接与数据库通信。这些组织要求数据库位于前向网站无法访问的网络上。在这种情况下,需要3层架构,因为它满足此网络策略,因为前向前端网站只与中间层通信,不了解任何数据库。
  •   
  • 可扩展性 - 您可能正在开发一个需要能够处理季节性流量峰值的营销网站。为满足此要求,您可能需要在短时间内扩展可用的前端机器数量。由于前端具有非常小的Ektron占地面积(没有Ektron安装,很少的DLL,没有工作区),因此水平缩放非常简单。例如,使用Amazon EC3,您可以通过精简前端的新机器实例轻松地进行水平扩展。
  •   
  • 性能 - 为了最大限度地减少3层体系结构中前端服务器和中间层服务器之间的干扰,Ektron提供了一个位于Framework API正下方并驻留在前端的缓存层。该层处理其数据的透明存储,检索和到期。从技术上讲,这个缓存层也可以在2层体系结构中使用 - 但特别是在使用3层时需要牢记这一点,因为它可以最大限度地减少对中间层的网络请求并提高性能。
  •   
  • 可用性 - 如果您的正常运行时间要求特别高,则可能会考虑使用3层,因为它能够从前端内存提供缓存数据,即使在中间层或数据库不可用的情况下也是如此。
  •   
  • 互操作性 - 使用3层可以在交付层上使用任何Web应用程序框架,例如ASP.NET Web窗体(Web应用程序),Web窗体(Web站点)甚至ASP.NET MVC。任何可以与WCF服务层(Java等)通信的前端应用程序也可以使用服务层。
  •   

答案 1 :(得分:1)

stackoverflow上有类似的问题:Addressing scalability ,performance in a .net web application。 为了实现可扩展性,大多数答案都转向DONT 3T。除非出现可扩展性之外的其他因素,否则默认为考虑两层