分布式系统的发展进程
1、单点集中式web应用,数据库和应用的war包部署在同一台服务器上。
2、应用与文件服务及数据库单独划分。部署在不同服务器上。
3、引入缓存与集群,
引入缓存的目的:把大量用户的读请求引入缓存中,写操作在数据库中进行,减轻数据库的访问压力。
引入集群:减少单台服务器的压力,引入集群就要用到nginx来负载均衡,并且如果不对session进行管理,就会照成session丢失的情况,所以我们要用spring-session进行session的共享,或者将NGINX的策略改成同一ip策略,让同一个ip只访问同一个服务器。
4、数据库读写分离,并提供反向代理及cdn加速访问服务。
读操作往往远大于写操作,这就照成写操作被影响,所以需要进行读写分离,提高数据库的储存性能。
为了进一步的提高服务器的访问速度,所以把静态资源的访问也分离出去。
最终的结构就变成了如下图所示:
如果还是不够需求,还可以把数据库做成分布式的,不仅读写分离,还要分库分表。