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

  • 相关阅读:
    el-select下拉框选项太多导致卡顿,使用下拉框分页来解决
    vue+elementui前端添加数字千位分割
    Failed to check/redeclare auto-delete queue(s)
    周末啦,做几道面试题放松放松吧!
    idea快捷键
    解决flink运行过程中报错Could not allocate enough slots within timeout of 300000 ms to run the job. Please make sure that the cluster has enough resources.
    用.net平台实现websocket server
    MQTT实战3
    Oracle 查看当前用户下库里所有的表、存储过程、触发器、视图
    idea从svn拉取项目不识别svn
  • 原文地址:https://www.cnblogs.com/lushilin/p/6134900.html
Copyright © 2011-2022 走看看