我必须编写一个架构案例研究,但有一些我不知道的事情,所以我想对以下内容提出一些建议:
该网站必须同时处理5k用户。 后端由商业软件,一些Web服务,一些消息队列和数据库组成。
我想建议在后端使用Spring,处理不同的元素,并公开一些Rest服务。
我也想在前面推荐检票口(这里不是重点)。
我不知道的是:我必须在相同的tomcat服务器或两个不同的服务器上安装正面和背面吗?我很想在前面安装两台服务器,带有负载均衡器(在这种情况下不需要会话复制)。但如果我有两个前端服务器,我必须有两个后台服务器吗?我不想制造某种瓶颈。
根据我在this blog上所读到的内容,只有第一个提到的网站,一个tomcat才会收取巨额费用。但我找不到任何关于此的信息,所以我不知道它是否合理。
如果你能引起我的注意,那么我可以继续我的案例研究,这将非常有帮助。
谢谢:)
答案 0 :(得分:5)
每层有多个服务器可能有两个主要原因;高可用性和性能。如果你出于HA的原因不这样做,那么不幸的答案就是'它取决于'。
拥有两台前端服务器并不会强迫您拥有两台后端服务器。后端是否会承受足够高的负载而需要两台服务器?它将在很大程度上取决于它正在做什么,并且最好通过负载测试和/或分析来揭示。但是,对于处理5000个并发用户的网站,我的猜测是肯定的......
答案 1 :(得分:2)
这完全取决于您的申请。你的课程有多重? (Wicket以在会议中投入大量资金而闻名)。你的后端处理有多重。
提出可以扩展的东西可能是个更好的主意。负载平衡器,可以继续添加新服务器以进行扩展。
测量是你能做的最好的事情。创建JMeter脚本并找出应用程序中断的位置。从那里建立了一个计划。
答案 2 :(得分:1)
扩展我的评论:仔细考虑客户向您的服务器发出请求的典型过程:
因此,在设计架构时,您需要考虑以下事项:
然后更一般地说,我会考虑:
我也同意其他人所说的话 - 在某些时候你不需要过于理论化。设计一些合理的东西,然后运行一个试验台,看看它是如何实际应对您预期的数据量的。 (您可能没有构建整个应用程序,但您可以开始做出预测“我们将让X客户端每Z分钟发送Y个请求,并且这些请求的p%将花费n毫秒并将r行写入数据库” ...)