分布式系统设计
Posted 鲁仕林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统设计相关的知识,希望对你有一定的参考价值。
一、分布式系统基础设施简介
1、分布式协作及配置管理系统ZooKeeper
2、分布式缓存系统
分布式缓存主要用于高并发环境下,减轻数据库的压力,提高系统的响应速度和并发吞吐。当大量的读、写请求涌向数据库时,磁盘的处理速度与内存显然不在
一个量级,因此,在数据库之前加一层缓存,能够显著提高系统的响应速度,并降低数据库的压力。
3、持久化存储
常见的分布式系统存储解决方案,包括mysql的分布式扩展、HBase的API及使用场景、Redis的使用等。
4、分布式消息系统
在分布式系统中,消息作为应用间通信的一种方式。消息可以被保存在队列中,直到被接收者取出,由于消息发送者不需要同步等待消息接收者的响应,消息的异
步接收降低了系统集成的耦合度,提升了分布式系统协作的效率,使得系统能够更快地响应用户,提供更高的吞吐。当系统处理峰值压力时,分布式消息队列还能作为
缓冲,峰值填谷,缓解集群的压力,避免整个系统被压垮。
5、搜索引擎
垂直化的搜索引擎在分布式系统中是一个非常重要的角色,它既能够满足用户对于全文检索、模糊匹配的需求,解决数据库like查询效率低下的问题,又能够解
决,由于分库分表,或者使用NoSQL数据库,导致无法进行多表关联或者进行复杂查询的问题。
6、CDN系统
7、负载均衡系统
8、运维自动化系统
9、实时计算系统
10、离线计算系统
11、分布式文件系统
12、日志收集系统
13、监控系统
14、数据仓库
二、分布式缓存
1、分布式Session
传统的应用服务器,如tomcat、jboss等等,其自身所实现的session管理都是单机的。对于一个大型分布式网站,支持其业务的远远不止一台服务器,而是一个
分布式集群,请求在不同服务器之间跳转。那么,如何保持服务器见的session同步呢?传统网站一般将一部分数据存储在cookie中,来规避分布式环境下session的操作。
这样做的弊端很多,一方面cookie的安全性问题,另一方面cookie存储数据的大小也是有限的。随着移动互联网的发展,很多情况下还得兼顾移动端的session,使用采用
cookie进行session同步的方式的弊端更为凸显,分布式session就是在这种情况下应运而生。
对于系统可靠性要求较高的用户,可以将session持久化到DB中,这样可以保证宕机是会话不易丢失,但缺点就是系统的整体吞吐将受到很大的影响。另一种解决方案
便是将session统一存储在缓存集群上,如memcache,这样可以保证较高的读、写性能,这一点对于并发量大的系统来说非常重要;从安全性考虑,session毕竟是有有效
期的,使用缓存存储,也便于利用缓存的失效机制。使用缓存的缺点是,一旦缓存重启,里面保存的会话也就丢失了,需要用户重新建立会话。
三、持久化存储
四、消息系统
五、垂直化搜索引擎
引用自:http://www.cnblogs.com/SmartLee/p/5161630.html
以上是关于分布式系统设计的主要内容,如果未能解决你的问题,请参考以下文章