1 概述
分布式系统就是利用一组机器来协同工作,并对外提供统一的服务。
分布式架构的核心,在于拆分。
2 分布式数据架构
2.1 垂直拆分
按照业务将数据拆分成不同的库;
如sns网站中日志与照片可以分成两个数据库。
2.2 读写分离
一般是主从架构,主库用于写,从库用于读;
主从之间需要同步机制来保证数据的一致性。
2.3 水平拆分
按照数据的特点将全量的数据拆分成不同的分区,并分布到指定的库中;
如sns网站中的日志/照片等信息是按照userID来组织的,因此可以根据userID将数据拆分到不同的库中,其中关键是制定路由规则,就是如何根据userID来找到对应的数据库。
2.4 总结
数据库层面的分布式架构,可以分别从业务+读写+数据分区等3个维度来拆分数据。
3 分布式应用架构
3.1 均衡负载
利用均衡负载服务器将请求分发到不同的服务器来处理,其中关键的是路由规则。
3.2 独立的session服务
应用是有状态的,他的状态是保存在session中。如果你的路由规则是随机分发请求的话,则需要提供独立的session服务,如将session保存在数据库或缓存中,不要保存在本地文件或内存中。如果你的路由是根据ip来分发请求的话,则由于某个ip的请求总是分发到同一个服务器中,因此session可以保存到本地。
3.3 总结
应用层面的分布式架构,主要是多copy+均衡负载+独立的session服务。
本文出自 “荒漠中的诗歌” 博客,请务必保留此出处http://shige.blog.51cto.com/4544994/1434859
原文地址:http://shige.blog.51cto.com/4544994/1434859