zoukankan      html  css  js  c++  java
  • 分布式系统设计

    一、分布式系统基础设施简介

    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

  • 相关阅读:
    hdu 思维风暴
    HDU 4183Pahom on Water(网络流之最大流)
    现在仍在工作的12名最“屌”的程序猿
    安卓ContentObserver模式获取短信用正则自己主动填充验证码
    Android插件实例——360 DroidPlugin具体解释
    mysql---union的使用方法
    SICP 习题 (2.11)解题总结:区间乘法的优化
    jQuery中的ajax
    Ajax的简单总结
    jQuery插件开发
  • 原文地址:https://www.cnblogs.com/lushilin/p/6134900.html
Copyright © 2011-2022 走看看