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