1.早期我们的项目甚至前后端都没有分离,java采用jsp,.net采用aspx,这是一种动态网页文件,客户端向服务端发起请求,服务端将根据请求调用相应方法并从数据库中抽取数据,如果不需要则不进行抽取,将数据嵌入到jsp页面中,然后将整个jsp页面返回。
这种方式不仅不优雅,而且会给服务端造成极大的压力,具有并发量小,容错性差等特点。
2.后来我们采取分层开发、服务器分离部署等方式来提高并发量,这里的服务器分离部署主要指数据库和服务端分离部署。
但是这种方式依然无法满足互联网对高并发的要求。
3.采用集群部署
服务端和数据库分别采用多台服务器集群部署。
这时,我们的并发量和容错性都得到提高。
session称为会话控制,首先要明白我们为什么要有session,因为在我们做页面跳转时通常会向服务端发起请求,很多页面要求登录后才能查看,所以这个时候服务端需要判断用户是否登录,于是这个时候我们就需要一个服务端数据来保存客户的登录状态,这时我们就可以用session。
那么这个时候,问题来了,如何使我们的多台服务器能够共享session做到单点登录。
这时候我们可以有一个redis服务器来专门存储session,我们可以直接将session放在这台服务器的redis里面,其他的服务器都从这台服务器的redis里面存取session数据,这样就解决了session的问题。
这时候又有了第二个问题,当客户端发起请求,我们选择哪台服务器来解释请求。
答案是使用nginx服务器将不同的请求分别发送给不同的tomcat,实现负载均衡。
但是我们不能无限制的通过增加服务器来提高我们的并发量,于是这个时候我们就需要再次重新进行架构,在服务器数量一定的情况下提高我们对并发的承载能力。
4.面向服务的体系架构(SOA)
后续再写