系统架构设计.docx
《系统架构设计.docx》由会员分享,可在线阅读,更多相关《系统架构设计.docx(34页珍藏版)》请在冰豆网上搜索。
系统架构设计
技术架构
技术架构总览
业务框架
接入层
前后台分离
接口层
业务链
订单
服务层
产品
资源
供应商
⋯
数据层数据存储
技术方案运营监控治理安全防范
动静分离预处理业务量监控流量切换Https接入
服务网关,路由分发
黑白名单
微服务/组件MQAPISLA灰度
Oauth认证
异步/离线MapReduce
日志收集
隔离/降级
Hystrix熔断
SSOAI
调用栈
安全巡检
DB水平扩充/
HDFS
服务器状况
身份认证
读写分离
动态规划
分布式缓存
NoSQL
网络状况
IP限制
技术方案
前台技术架构
根据用户设备及浏览器尺寸路由
PCPAD
页面自适应、最小宽度页面自适应
element-ui+vuejs+Echartsvuejs+muijs
金豆云CMS配置编译发布
自
自
系统构建:
Webpack,Gulp
定
定
JS
CSS
Resource
Html5
义
义
组
样
件
式
*.js,*.vue
*.sass,*.css
Font,Img
Font,Img
Mobile其它智能设备
页面自适应
vuejs+muijs
基础组件库
基础样式库
技术方案
微服务架构
结合现实情况,平台服务计划分二个阶段完成,先完成服务化,后续在服务化的基础上重构成微服务
第一步:
服务化第二步:
微服务
服务注册中心–zookeeper
LoadBalancer
服务提供者
服务提供者
服务提供者
WebServer
WebServer
业务代码
业务代码
业务代码
异构
服务提供者
服务提供者
服务提供者
语言
Proxy
业务代码
业务代码
业务代码
集群
用户
订单
商品
服务
服务
⋯
服务提供者
服务提供者
服务提供者
服务
业务代码
业务代码
业务代码
服务治理
服务监控
报警
实时数据
监控
暂停
恢复
下线
基础服务框架
springboot
分布式RPC服务框
架
dubbo
服务注册中心
zookeeper
服务发布容器
docker
持续集成工具
jenkins
用户订单商品⋯
DBDBDBDB
服务依赖
调用链路
服务流量
性能瓶颈
SLA分析
历史信息
关系分析
追踪
控制
分析
统计
技术方案
动静分离-CDN
静态资源访问加速
静态数据返回
用户CDN
静态资源文件(html,css,js,img等)
业务静态图片
ECS(服务器)OSS(云存储
用户动态
动态数据
用户静态
请求数据
结果返回
数据请求
回源请求
抓取数据
Web程序数据库
内网访问,
数据更新维护
静态脚本附件
图片视频音频
智能压缩
对静态资源进行压缩,减少传输大小,加速分发效果
可视化监控
可通过视化监控管理,查看监控日志和统计分析制定合
适的缓存策略,并可通过从源站刷新缓存等手段主动维
护高访问资源的缓存
技术方案
负载均衡+弹性扩展
流量调度
多台云服务器自动进行流量分发,获得更
高水平的容错性能
扩展性
支持云服务器动态扩展,实现无缝伸
缩,伸缩过程不用更换任何设备,对相
关调用和访问者零影响
四层DDoS攻击防护,支持应用防火墙和CC防护,提供防护
统计页面,实时抵御网络攻击
安全
ECS
前期方案
云
负载均衡
云服务器ECS
云服务器ECS
服
务
器
E
C
S
负载均衡
云服务器ECS
后期根据
业务扩展
增强
负载均衡云服务器ECS云服务器
技术方案
消息系统
消息队列采用阿里云MQ
消息发送/发布方消息接收/订阅方
TCPUDPHTTPSOAP⋯
消息接收器消息发送器
消息持久
消息状态
流入路由器
流出路由器
元数据
消息
内部服务
拦截器
拦截器
事务管理
转换器
组件调用
组件容器
故障恢复
技术方案
推荐引擎
基于阿里云的RecEng(推荐引擎)和MaxCompute
基本推荐流程
客户接入数据
计算用户/
特征提取相关性计算+
物品评分
邻近计算
用户/物品用户/物品
的原始特征评分矩阵
用户/物品
用户/物品
用户的候选推
荐集/物品相
关系计算
的耦合特征
似物品集
OTS离线
计
(大数据计算服务)搭建金豆云推荐引擎,实现千人千面
推荐建模流程
推荐请求
客户效果数
API
据
OTS物品实
模型样本
时修正表
推荐处理线
程
基于业务目标
OTS用户实
的监督学习
时修正表
针对业务目标的API返回
RankingModel
OTS离线计
算结果表
算结果表
离线计算在线计算
技术方案
用户认证SSO+OAuth2
内部系统
内部系统采单点登陆方式进行管理
供应系统
资源系统
人脉系统
微
店
系
统
金豆云
认证系统
用户
信息
⋯
外部系统
外部系统连接主要分为2种方式:
1.通过ROP平台实现数据交互
2.金豆云提供OAuth2认证机制给第三方,实现页面与数据的交互
Reque
st
User
Url
跳转用户授权
请求AccessToken
生成
Access
Token
请
求
用
户
O
pe
nI
D
生成Auth
Code
foUrl
生成OpenID
获取用户资源
通过token、openId及API
R
e
q
u
e
s
t
Request
I
Access
n
Url
技术方案
分析平台
HBaseHadoopHDFS
JSON
Echarts|CuBI
RESTAPI
报表
Spring,SpringMVC,JMS,Sqoop
事件监听定时任务数据导入
Spark
API接口数据分析数据融合
MQ消息队
列
HadoopHDFS支持分布式存储
?
分析平台基于业务数据进行数据映射与融合
?
整体架构基于大数据分析框架设计,并通过模块化设计进行内部解耦,将数据收集,导入及分析功能围绕分析模型系统处理
?
业务数据收集工作通过异步消息及定时导入方式实
现
?
底层技术实现
?
前端主要提供RESTAPI供产品平台进行数据获取。
同时采用Echarts或CuBI进行报表展现
?
中台服务逻辑层使用Spring,SpringMVC作为应用构建
及对外接口发布,配合MQ队列机制处理异步消息。
Spark作为核心数据处理引擎,进行MapReduce处理
?
持久层主要采用HBase进行大数据存储,同时使用
技术方案
数据库
设计原则
1统一数据视图
保证数据的及时性、一致性、准确性、完整性
2数据应用分离
应用系统只依赖逻辑数据库
应用系统不直接访问其它宿主的数据库,只能通过服务访问
3数据读写分离
访问量大的数据库做读写分离
数据量大的数据库做分库分表
不同业务域数据库做分区隔离
重要数据配置备库;
4合理使用缓存
Mongo
Mongo
业务
DB
DB
HBase
业务
Master
Slave
数据库
数据库
(Master)
(Slave)
HadoopHDFS
报表数据
Redis
Redis
Doc
Doc
Doc
库
Master
Slave
?
产品平台数据库设计方案采用二级缓存机制
?
一级缓存使用Redis副本集,对频繁访问数据进行缓存。
同时围绕Redis单线程机制,针对大量并发场景设计
了同一用户的并发锁策略。
?
二级缓存使用MongoDB副本集,对结构化数据及频繁更新数据进行文档化数据存储
?
业务数据库使用MySQL集群方案
?
分析平台基于大数据架构设计方案,数据库使用区域HBase部署策略,同时采用HadoopHDFS进行分布式文件存
储
技术架构–运营监控
流量控制
1.分流
无法缓解大流量
页面降级
业务功能降级
2.降级
应用系统降级
应用:
集群,无状态,提高访问量
水平扩展
数据:
读写分离,提高性能
应用:
按业务域划分成不同子系统
业务分区
数据:
数据分区
应用:
不同业务类型分片
分片
数据:
分库分表,提高数据容量
应用:
分层,功能与非功能分开
动静分离
数据:
冷热数据分离
1.动态页面降级到静态
2.整体降级到其他页面
3.页面部分内容
舍弃一些非关键业务,
如购物车库存状态
降级一些下游系统,3.限流
无法缓解
如一次拆分暂停大流量
Nginx前端限制
应用系统限流
客户端限流
服务端限流
数据降级
远程服务降机到本
数据库限流
地缓存
技术架构–运营监控
SLA
数据持久性
不低于99.9999999%
数据可迁移性
迁入迁出
服务可用性
不低于99.95%
故障恢复能力
7×24小时的运行维护
数据可销毁性
数据无法恢复
数据私密性
网络层访问控制技术实现对不同用户资源的隔离
数据知情权
对于数据、备份数据所在数据中心地理位置、
数据备份数量具有知情权
服务资源调配能力
用户可在10分钟内启用或释放100台云服务
器,
或在5分钟内完成停机升级CPU和内存,并支
网络接入性
多线接入,0M
服务提供方
SLA
服务消费方
技术架构–治理
灰度发布
老系统老系统DB
Client转发
新系统新系统DB
Client
部分请求到旧系统上,另一部分请求到了新的灰度系统上.走到
旧系统的请求,还是照原样处理.走到了新版灰度系统的请求,需要同时将请求转发给旧系统上来对应的接口上修改旧系统的数据.如果走到新系统的请求查不到该用户的数据,还需要首先同步一份来新系统上
请求首先走到了新版本需要灰度的服务A上,在经过该服务处理后,
给请求打上了tag
A,由于带上了tag,后续访问的都是配套灰度
的
A服务
C服务
新版A服务
TagA
B服务B服务
TagA
C服务新版C服
务
技术架构–安全
安全策略
2黑白名单
设置黑名单,使用
1Https
haproxy、nginx
过
接入
滤恶意请求
3OAuth2认证
数据传输入过来加密,
使用Spring-security-
防止传输过程中数据被
oauth2
篡改、安全级别更高
实现与第三方系统认证授权
安全策略
防止恶意CC攻
6
安全巡警
击,避免网站挂马
篡改
购买阿里安骑士、
Web应用防火墙,
5IP限制
设置数据库访问IP列
表,保障核心数据不
受到侵犯
4Hystrix熔断
通过Hystrix防护
和控制系统依赖,
防止故障连锁,以
完成对应用的熔
断、降级等策略