一、基本概念
1、分布式
系统中的多个模块在不同的服务器上部署,即可称之为分布式系统。如Tomcat和数据库分别部署在不同的服务器上,或者两个相同功能的Tomcat分别部署在不同的服务器上。
2、高可用
系统中部分节点失效的时候,其他节点可以继续替它提供服务,则认为系统具有高可用性。
3、集群
一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如zookeeper中的master和slave分别部署在不同的服务器上,共同提供服务,在常见的集群中,客户端可以连接任意一个节点获得服务,并且如果有节点挂掉,其他节点可以替代它继续提供服务。
4、负载均衡
客户端发送请求的时候,服务器可以利用某种方式把请求均匀的分发到多个节点上,使得每个节点能够均匀的处理请求负载。
5、正向代理和反向代理
系统内部要访问外网的时候,统一通过一个代理服务器把请求发出去,代理服务器实现的就是正向代理。
如果有外部请求进入系统的时候,代理服务器把这些请求集中转发到某台服务器上,此时,代理服务器实现的就是反向代理。
所以,正向代理就是代理服务器代替系统内部向外发起请求的过程,而反向代理是外部请求通过代理服务器转发到内部服务器的过程。
二、架构演进过程
1、单机架构
Tomcat和数据库部署在同一个服务器上,浏览器访问tabao网址,先通过DNS(域名系统)拿到具体的ip,然后浏览器直接访问该IP的tomcat。
2、tomcat 和 数据库分开部署
将数据库和Tomcat分别部署,独占服务器资源。
3、引入本地缓存和分布式缓存
使用memcached作为本地缓存,使用Redis作为分布式缓存,将热点数据放在缓存里,降低数据库的负载。