分布式架构
2017-03-06 21:41:19 0 举报
AI智能生成
高可用架构【网上的资料整理成思维导图】
作者其他创作
大纲/内容
特点
用户量大,分布广泛
流量大,高并发
数据量大,高可用
安全环境恶劣,易受攻击
功能多,变更快,发布频繁
从小到大,渐进发展
以用户为中心
免费服务,付费体验
架构目标
高性能:提供快速的访问体验
高可用:网站服务一直可以正常访问
可扩展:方便的通过新增/移除方式,增加/减少新的功能/模块
可伸缩:方便的增加/减少硬件设备,提高/降低对外服务能力
安全性:提供网站数据安全存储和对外加密
敏捷性:随需应变,快速响应
网站架构模式-实现途径
分层
客户端层:表现为浏览器,以及APP应用
前端优化层:在此层可以对客户端层做优化
浏览器优化
减少http请求数
使用浏览器缓存
启用压缩
减少cookie传输
异步加载
DNS负载均衡
CDN加速
反向代理
应用层
应用集群
业务垂直拆分
服务层:提供公共服务,比如说价格服务,用户服务,库存服务等
数据存储层
关系型数据库集群
读写分离
分库分表
NoSQL集群
典型的redis集群
大数据存储层
收集应用层数据
收集服务层数据
使用关系型DB和NoSQL数据库存储数据
分布式文件系统
大数据分析层
离线处理
mapReduce
实时处理
storm spark等
日志展示
elk stack
分割:将业务按照功能/模块/业务特点进行分割
分布式:将应用分开部署,使用远程调用协同工作的方式来进行通信管理
集群:将一个应用/模块/业务功能部署多份,通过负载均衡方式对外提供服务
缓存:将数据放在离用户最近或者访问最快的位置
异步:使用请求-响应-通知模式,将同步响应改成异步处理完成之后进行通知
冗余:增加副本,提供数据安全性,以及可用性
安全:对已知问题有成熟的解决方案,对潜在的风险有充足的防御机制
自动:将重复的,不需要人工干预的交给机器完成
敏捷:积极接受需求变更,快速响应
高性能解决之道
特点
较短的响应时间
较高的并发处理能力
较大的吞吐量
稳定的性能参数指标
前端优化
应用层优化
处理网站业务的服务器。使用缓存,异步,集群
处理网站业务的服务器。使用缓存,异步,集群
代码优化
合理的架构,多线程,资源复用(对象池,线程池等),良好的数据结构,JVM调优,单例,Cache等
存储优化
缓存,固态硬盘,光纤传输,优化读写,磁盘冗余,分布式存储(HDFS),NOSQL
高可用解决之道
应用层高可用
无状态设计,使用任何一台都不影响
负载均衡技术
session共享/同步
服务层高可用
负载均衡
服务分级管理
快速失败(设置超时时间,超时则快速响应失败)
异步调用
服务降级
幂等设计
数据层高可用
冗余备份:冷备/热备
失败转移:数据确认,转移,恢复
CAP理论【强一致性,最终一致性】
可伸缩
不改变原有架构设计基础之上,通过增加/减少硬件的方式,提高系统对外服务能力
scale up VS scale out
应用层:垂直/水平分割
对单一功能进行负载均衡(DNS,HTTP[反向代理],IP,链路层)
服务层: 减小服务粒度,分布式部署,负载均衡
数据层:分库分表
可扩展
模块化,组件化
稳定接口
设计模式
消息队列解耦
分布式服务:公共模块服务化,组件化
安全架构
提供风险意识
服务器密码更换
每周安全扫描
安全制度化
应用程序安全
代码层面解决问题
跨站脚本攻击XSS
SQL注入
跨站请求伪造(CSRF)
防火墙
数据安全
设备安全
定时备份
传输安全
保存安全
敏捷性
业务,产品,运维,技术统一
敏捷管理
0 条评论
下一页