版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
企业微服务技术架构介绍企业微服务技术架构介绍1目录01020304微服务介绍0到3000万用户微服务化过程微服务进阶阶段微服务与大数据结合目录01020304微服务介绍0到3000万用户微服务化过程2微服务介绍01微服务介绍013微服务介绍将原来耦合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累,每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于微服务具备独立的运行进程,所以每个微服务可以独立部署。当业务迭代时只需要发布相关服务的迭代即可,降低了测试的工作量同时也降低了服务发布的风险。在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。比如通过限流、熔断等方式降低错误导致的危害,保障核心业务正常运行。在微服务架构下,每个服务可以根据实际需求独立进行扩展。降低复杂度可独立部署容错可扩展微服务介绍将原来耦合在一起的复杂业务拆分为单个服务,规避了原40到3000万用户微服务化过程020到3000万用户微服务化过程0250到3000万用户微服务化过程warwarDBDBNginxrediswarwarDBNginxrediswarserviceserviceservicewarDBNginxrediswarserviceserviceserviceDBDB2015年2018年0到3000万用户微服务化过程warwarDBDBNginx6初始阶段的平台0到3000万用户微服务化过程warDB2015年底方法:tomcat+MySQLspring+mybatis结合,构建业务系统系统之间的业务共享直接依赖DB问题:发版的时候会暂停服务,影响运营投放并发访问量大的时候出现大量超时初始阶段的平台0到3000万用户微服务化过程warDB方法:7DBwarNginxrediswar初始阶段的平台0到3000万用户微服务化过程方法:引入Nginx做反向代理,解决发版暂停服务问题引入redis做session共享问题:系统中存在大量重复代码,耦合严重任何的改动可能引发其他的bug,测试回归量增加系统质量降低,线上bug频发2016年DBwarNginxrediswar初始阶段的平台0到3008“半”微服务阶段0到3000万用户微服务化过程方法:根据领域模型、业务等做服务拆分引入dubbo开始进入服务化拆分问题:系统中任何一条性能差的SQL引发dubbo线程池满,导致平台雪崩DB高负荷运行,CPU经常到达
99%触发报警每个人的代码风格不一样,不利于维护,系统存在不稳定因素2017年warDBNginxrediswarserviceserviceservice“半”微服务阶段0到3000万用户微服务化过程方法:根据领域9微服务阶段0到3000万用户微服务化过程方法:代码自动化生成,风格统一每个服务单独对应一个DB,读写分离引入限流、熔断等技术保障服务稳定性问题:分布式事物解决方案聚合日志查询2018年warDBNginxrediswarserviceserviceserviceDBDB微服务阶段0到3000万用户微服务化过程方法:代码自动化生成10准备微服务工具自动生成读写分离自动生成代码骨架自动生成Mybatis
xml文件自动生成PO
DTO对象自动生成pom依赖0到3000万用户微服务化过程准备微服务工具自动生成读写分离自动生成代码骨架自动生成Myb11ManagerImplRManagerImplW0到3000万用户微服务化过程代码结构以及依赖关系Controllerback(war)basic(
jar)IMangerMangerImplFacadeIServiceServi
ceImplIMangerRIMangerWDAORDAOWWRManagerImplRManagerImplW0到3012业务架构图(简化版)APPM站H5公众号PC前端应用统一接入网关用户中心产品中心订单中心财务中心支付中心业务聚合…用户服务产品服务订单服务支付路由目录服务基础服务评论服务短链服务消息服务短信路由促销服务排序服务…MYSQLRedisHBaseHDFSES数据存储Hive公共平台配置中心监控中心安全中心日志中心调度中心Binlog配置服务A/B行为数据搜索排行用户标签用户画像数据中心运营报表0到3000万用户微服务化过程业务架构图(简化版)APPM站H5公众号PC前端应用统一接入13系统访问流程0到3000万用户微服务化过程AppH5NginxAPI网关集群API…业务集群业务聚合层 业务聚合层LocalCache LocalCacheserviceserviceserviceserviceservice…服务集群业务聚合层LocalCache业务聚合层LocalCache业务集群RemoteCache集群主从DAL配置中心全局调用链系统访问流程0到3000万用户微服务化过程AppH5Ngin14千人千面 个性化推荐0到3000万用户微服务化过程用户服务产品服务属性服务校验服务标签服务订单服务排序服务用户行为黑镜服务精准营销版本服务。。。千人千面 个性化推荐0到3000万用户微服务化过程用户服务产15服务服务化串行为并行,提升访问速度0到3000万用户微服务化过程服务服务服务业务聚合层服务业务聚合层ExecutorService服务(串行)(并行)服务业务聚合层服务(并行)eseses服务服务化串行为并行,提升访问速度0到3000万用户微服务化16快、再快、更快0到3000万用户微服务化过程用户服务产品服务属性服务校验服务标签服务...快、再快、更快0到3000万用户微服务化过程用户服务产品服务17充分使用缓存0到3000万用户微服务化过程RemoteCache服务RemoteCache业务聚合层DB业务聚合层LocalCache服务RemoteCacheDB网络网络充分使用缓存0到3000万用户微服务化过程RemoteCac18服务解耦0到3000万用户微服务化过程发放优惠券用户表积分初始化订阅binlog订阅配置平台MQ优惠券服务财务初始化邀友奖励流量上报用户表积分服务账户服务MGM服务流量上报服务解耦0到3000万用户微服务化过程发放优惠券用户表积分初19缓存解耦熔断安全0到3000万用户微服务化过程缓存解耦熔断安全0到3000万用户微服务化过程20熔断功能要求熔断时间窗口错误率人工干预主动告警0到3000万用户微服务化过程熔断功能要求熔断时间窗口错误率人工干预主动告警0到3000万21缓存技巧l 使用自定义@anntation(启动本地缓存TTL+远程缓存)l key自动注册到配置中心l 支持手动修改TTL时间l 防止缓存击穿1)使用布隆过滤器2)
启用缓存Slotsynchronized
(lock)
替换为synchronized
(slot[key.hash%slot_size])0到3000万用户微服务化过程缓存技巧l 使用自定义@anntation(启动本地缓存TT22基于MQ的应用解耦0到3000万用户微服务化过程l 应用层必须支持消息幂等l 支持消息回溯l 支持消息重放l 基于关键字查询l 消息的消费的机器I
以及消息时间基于MQ的应用解耦0到3000万用户微服务化过程l 应用层必230到3000万用户微服务化过程安全机制zkconsumerprovide基于dubbo
Filter机制扩展自动接入配置中心支持限制IP访问支持限定某个方法访问权限非授权类连接具备自动告警机制问题:消费者可以通过注册中连接任意服务提供方消费者可以通过直连的方式连接服务提供方对服务方提供的服务做任何操作zkconsumerprovide授权0到3000万用户微服务化过程安全机制zkconsumerp24微服务进阶阶段03微服务进阶阶段0325dubbo
MonitorService扩展TpsElapsedConcurrent…监控平台dubboMonitorService扩展监控平台26需求:模拟一次支付成功模拟一次注册失败能模拟各种状态值模拟延时、异常测试人员方便模拟……要求:别让我额外编码我有代码洁癖,非业务的代码不要加我的代码谁动了,出问题后谁负责……测试开发需求:要求:测试开发27Mock平台ConsumerProviderFilterhttp
request
Mock
平台http
response配置中心Mock平台ConsumerProviderFilterht28日志检索平台KAFKA业务系统AFLUME业务系统BFLUME业务系统CFLUME日志平台告警平台实时计算平台规则引擎日志检索平台KAFKA业务系统A业务系统B业务系统C日志平台29线上故障情况客服报线上问题
了,但是验证后却正常线上产生诡异的数据不清楚如何产生的老板操作发生异常,但是研发操作却正常。。。问题恢复任意时刻现场数据重复模拟指定场景,特定人的操作轨迹不能污染线上数据。。。期望线上故障情况客服报线上问题了,但是验证后却正常问题恢复任意30日志回放系统KAFKA抽样规则集配置中心HBaseHBaseHBaseHBase日志回放系统基础服务集群泛化注册中心日志回放系统KAFKA抽样规则集配置中心HBaseHBase31微服务与大数据结合04微服务与大数据结合0432大数据平台千人千面个人化智能推荐排序模型用户画像历史申请数据人工智能搜索推荐个性化智能推荐浏览记录大数据平台千人千面个人化智能推荐排序模型用户画像历史申请数据33海量数据存成计算问题用户行为记录:登陆点击申请……需求:每个月记录数10亿+支持增量/全量分析统计初始方案:MySQLRedis问题:redis成本太高MySQL涉及到分库分表冷热数据需要手动处理多维度统计分析比较困难解决方案:引入HBase存成海量用户行为记录RowKey=定长(用户id反转)+日期优势:自动解决冷热数据无需关注分库分表任何服务器故障,不丢失数据支持MR或者Spark做多维度计算大数据平台海量数据存成计算问题用户行为记录:需求:初始方案:MySQL34大数据平台大数据平台技术架构FlumeSOA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论