大型分布式系统组成元素
2016-03-27 16:32
253 查看
#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。阅读更多
相关文章推荐
- 【系统架构】大型网站架构系列:缓存在分布式系统中的应用(三)
- 大型网站架构系列:缓存在分布式系统中的应用(二)
- 企业级JAVA大型分布式电商项目实战高并发集群分布式系统架构视频教程下载
- ZooKeeper在大型分布式系统中的应用之HBase。
- 高并发,分布式,高可用,性能调优,系统架构,大型电商项目实战
- 分布式--系统组成模块儿
- 大型网站架构系列:缓存在分布式系统中的应用(二)
- 如何设计一个基于云计算的大型分布式系统
- Zookeeper在大型分布式系统中的应用
- 大型网站架构系列:缓存在分布式系统中的应用(三)
- 大型分布式系统架构
- [大型网站系统与Java中间件实践]--分布式服务框架(RPC)
- 大型网站系统与Java中间件实践~初识分布式系统
- 大型分布式系统架构与设计实战
- 大型网站架构系列:缓存在分布式系统中的应用(一)
- 大型网站系统架构系列:分布式消息队列(二)
- 基于WCF大型分布式系统的架构设计
- 消息队列在大型分布式系统中的实战应用场景精髓
- 大型分布式系统架构
- 大型网站系统架构实践(二)分布式模块之间的通信