一大型稳健成熟的分布式系统背后,必然包含很多支撑系统,这些支撑系统统称为分布式系统的基础设施。分布式缓存主要用于在高并发环境下,减轻数据库压力,提高系统的响应速度和并发呑吐。
基于缓存的分布式session架构:
通过将session以sessionid作为key,保存到后端的缓存集群中,使得不管请求如何分配,即使是web server宕机,也不会影响到其它web server通过sessionid从cache server中获得session,这样既实现了集群间的session同步行街,又提高了web server的容错性。
持久化存储:
互联网领域常见的三种数据存储方式:1.传统关系型数据库mysql,2.Google提出的bigtable概念的开源实现hbase,3.丰富数据类型的key-value存储redis.
Master-Slave复制架构:
注:master-slave复制架构存在单点故障的问题,最佳方式是采用Master-Master架构,如下图:
注:通常只开户一台master的写入,另一台master仅仅stand by 或作为读库开放,避免数据写入冲突,防止数据不一致情况发生。
HBase:能够解决采用分库分表策略后,系统无法进行多表关联查询,以及查询时必须带路由字段的问题。搜索引擎可以很好地支持复杂条件的组合查询,通过搜索引擎构建一张大表能够弥补一部分数据库拆分所带来的问题
Redis:
消息系统:开源的系统消息有:ActiveMQ,Apache的Kafka,RabbitMQ,memchacheQ等
发布订阅消息传输模型:
基于共享文件系统的Master-slave架构和基于共享数据库的Master-slave架构: