• [转]大型分布式系统组成元素



    #1,分布式跟踪系统
    监控平台,如淘宝的鹰眼。用于跟踪请求处理调用链关系,并将各环节请求处理时间,处理结果等信息通过日志系统存入数据库。便于排查错误和分析性能瓶颈等作用。分布式跟踪系统要做到低损耗,低侵入性(最好能做到对应用层代码透明)等特性。

    #2,消息中间件
    作用:异步,解耦,并行,流量削峰(activeMq,rabbiteMq,kafka,zeroMq等),对于秒杀类场景,可以使用mq进行流量削峰,将客户端抢购请求封装成消息,投入mq。由后台系统异步去处理抢购请求,从而可以避免大量请求直接打到应用服务器,数据库服务器,造成系统瘫痪。后台处理系统可以采用按批次处理抢购请求,比如1次处理100个请求。从而可以很好的控制对数据库系统造成的压力。

    #3,分布式缓存系统
    作用:缓存热点数据,减轻数据库系统压力,提升服务响应性能(redis,memcached等),要做到缓存系统的高可用,一般采用主从模式,redis自带数据复制功能,但memcached不支持数据复制,必须采用第三方插件repcached,完成主从之间的复制,memcached sdk支持failuremode,当主库宕机后,能够自动将请求转到从库。或者使用keepalived插件实现双机浮动的高可用方案。

    #4,分布式文件系统(fastDFS)

    #5,分布式日志收集系统
    作用:收集应用系统日志,用于系统分析
    flume(日志采集器) -> kafka(日志缓冲队列) -> storm(实时分析框架) -> mongodb或hdfs或关系型数据库(分析结果入库)

    #6,分布式数据库集群
    mysql数据库,当单表数据量达到千万级别时,就要考虑数据的水平切分了,mysql单表数据量一亿时,select count(1) from t_table_a,耗时24秒左右,性能慢的是让人难以忍受的。所以对于数据按时间,Id,hash等规则水平切分到不同分库里(mycat中间件代理),按业务进行垂直拆分,将不同业务表,分到不同的业务库里。以此提升数据库服务器响应性能。

    #7,集群配置管理系统
    作用:管理应用系统配置及服务降级开关等配置,可以采用netty自己实现配置变更推送功能。

    #8,SOA服务化治理
    作用:服务动态发现,服务治理,服务监控等功能。例如:阿里的dubbo , 当当网的dubbox。
    #9,负载均衡,反向代理
    作用:流量分发,失效转发 failover,反向代理等功能。例如:nginx , haproxy , lvs。
    ---------------------
    作者:iteye_1873
    来源:CSDN
    原文:https://blog.csdn.net/iteye_1873/article/details/82649436
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    appfuse的一些资源
    实战: SOLR的分布式部署(复制)CollectionDistribute 快照分发 (精简版)
    在SOLR环境变量的配置 过程中,遇到的 A pseudo attribute name is expected 异常
    Solr应用开发——Solr home目录结构简介1
    升级 Solr 1.4 后性能有所提升
    Solr 删除数据的几种方式
    如何使SOLR系统自动AUTO COMMIT
    Solr应用开发——Solr home目录结构简介2
    升级到 solr 1.4 的注意事项
    SOLR环境变量的配置
  • 原文地址:https://www.cnblogs.com/Raywang80s/p/10136163.html
Copyright © 2020-2023  润新知