首页 > 代码库 > 关于分布式架构的思考

关于分布式架构的思考

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