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