图解分布式系统架构演进之路
0、 介绍 本篇文章是在我看完《从零开始学架构》之后,以架构演变为主线,梳理了一下演变过程中出现的问题以及解决方案,文章中引用了这本书的一些内容和图片 分布式和集群的概念经常被搞混,现在一句话让你明白两者的区别。 分布式 :一个业务拆分成多个子业务,部署在不同的服务器上 集群 :同一个业务,部署在多个服务器上 例如:电商系统可以拆分成商品,订单,用户等子系统。这就是分布式,而为了应对并发,同时部署好几个用户系统,这就是集群 1、 单应用架构 2、 应用服务器和数据服务器分离 单机负载越来越来,所以要将应用服务器和数据库服务器分离 3、 应用服务器做集群 每个系统的处理能力是有限的,为了提高并发访问量,需要对应用服务器做集群 这时会涉及到两个问题: 负载均衡 session共享 负载均衡就是将请求均衡地分配到多个系统上,常见的技术有如下几种 DNS DNS是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问广州的机房。一般不会使用DNS来做机器级别的负载均衡,因为太耗费IP资源了。例如,百度搜索可能要10000台以上的机器,不可能将这么多机器全部配置公网IP,然后用DNS来做负载均衡。 Nginx&LVS&F5 DNS是用于实现地理级别的负载均衡,而Nginx&LVS&F5用于同一地点内机器级别的负载均衡