京东话费充值系统架构演讲读后感
阅读文章:京东话费充值系统架构演讲
文章网址:https://mp.weixin.qq.com/s?__biz=MzUyMTAxMjIwNg==&mid=2247483681&idx=1&sn=8830b04a829566a548399a8030b557b8&chksm=f9e0d7a0ce975eb6955f5922d6cfee7417b4efc8255251899cb08d8598b3aee33f23a2d4dfb2&scene=21#wechat_redirect
一、应用层面
引入缓存:在应用层和数据库层增加缓存层,热点数据放入缓存。如系统中常用的开关、白名单等数据,读取频率高写入频率低,针对这部分数据就可以在JimDB(Redis)中存储一份,JimDB (Redis)会把高频数据存储在内存中,读写性能很高。数据写入缓存时设置一个有效期,更新数据库成功后,异步更新缓存数据。如果实时性要求不高,也可以等缓存失效后,主动更新缓存。引入缓存层,降低数据库压力,提升系统响应速度。
编写并发处理程序:多任务并发处理,充分利用CPU资源。无依赖关系的多条任务可以并行处理,提高系统处理能力。如结算任务,每笔订单之间的结算操作没有依赖关系,可以同时执行多条结算任务
系统结构优化:核心生成流程异步处理,接收用户订单和给用户充值两个流程异步化处理,提高系统处理能力。对用户来说,用户付款成功,等待充值即可。系统可通过worker触发充值动作,设置合理的重试次数,间隔一定的时间进行重试。在到达最终状态前,给用户显示中间状态。拆解大应用,使其微服务化。从功能上进行微服务化以后,应用拆解为PC端、Server端、MQ消息处理端、后台管理端、worker端等五个应用,应用之间功能独立,依赖公司的RPC框架(JSF)和消息框架(JMQ)进行通信。单个应用的内聚性更高,应用之间的耦合度更低。
读写分离:实时性要求不高的数据读取从库,降低主库压力。如对账功能,读取的是前一天的订单数据,这些数据就没必要从主库中读取。关于技术实现上,Spring框架本身有提供,实现其抽象类AbstractRoutingDataSource即可。
变化频率低的页面静态化:充值应用中有很多卡片页,如QQ页卡等,页面上的数据变化的只有广告位。这种类型的页面就可以静态化,定时更新页面,推送到存储介质上,nginx配置location,直接读取页面,降低后端服务的压力。
二、数据库层面
模拟MySQL slave的交互协议,解析数据库的增量BinLog,同步分库的数据到ElasticSearch中。由于数据库主从同步存在延迟的风险,需要准备一个降级方案。在话费充值应用中,数据库写订单成功后,插入一条任务记录,通过任务模型立即同步数据到ElasticSearch中。保证数据同步的实时性。
三、应用部署
在JVM内部隔离分为信号量隔离和线程池隔离,Netflix Hystrix插件提供了完美的支持。JD-Peer(多机房公网出口路由系统)中使用了Hystrix对每一个商家进行了隔离。话费充值应用对接了几十个商家,通过JD-Peer系统跟商家进行交互。
转载于:https://www.cnblogs.com/t1314/p/11054793.html
京东话费充值系统架构演讲读后感相关推荐
- 话费充值折扣数据库_《京东话费充值系统架构演进实践》--阅读
京东话费充值业务线的订单量'水涨船高 ',同时对系统的各项运行指标要求更高,老的系统架构不足以支撑新的业务量,需要对系统进行升级.升级方案从以下几个层面进行. 1.应用层面 引入缓存 在应用层和数据库 ...
- 京东虚拟业务多维订单系统架构设计读后感
阅读文章:京东虚拟业务多维订单系统架构设计 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486428& ...
- 京东B2B业务架构演变读后感
阅读文章:京东B2B业务架构演变 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486624&idx=1 ...
- 苏宁易购:商品详情系统架构设计读后感
商品详情系统是一个展示商品基本信息.参数等详情的系统,是商品购买的入口.它是电商平台中访问量最大的系统之一,苏宁易购大促期间PV量和UV量很大,这么大的访问量对系统的并发能力要求高.在业务上它与周边系 ...
- 刘慎宝:京东集团财务系统架构设计之路
[IT168&ITPUB专稿]本文根据刘慎宝老师在2018年10月17日第十届中国系统架构师大会(SACC2018)现场演讲内容整理而成. 讲师简介: 京东集团高级架构师,10+年互联网研发专 ...
- 刘慎宝 :京东集团财务系统架构设计之路
[IT168&ITPUB专稿]本文根据刘慎宝老师在2018年10月17日第十届中国系统架构师大会(SACC2018)现场演讲内容整理而成. 讲师简介: 京东集团高级架构师,10+年互联网研发专 ...
- 架构 | 京东商品搜索架构设计
电商搜索系统存在以下特点: 数据量庞大.(上亿级别) 高并发.(日均pv过亿.数十亿) 一条商品数据由商品基本信息.价格.库存.促销.评价等组成,这些数据存储在各自业务系统当中.(多数据源导致构建索引 ...
- 京东商品搜索架构设计
电商搜索系统存在以下特点: 数据量庞大.(上亿级别) 高并发.(日均pv过亿.数十亿) 一条商品数据由商品基本信息.价格.库存.促销.评价等组成,这些数据存储在各自业务系统当中.(多数据源导致构建索引 ...
- 京东物流AI智能大脑中台系统架构
来源丨 网络 图源 网络 吴盛楠博士现任京东物流首席数据分析官 (Chief Data & Analytics Officer),负责大数据和 AI 的发展,运用运筹学.统计学.机器学习等算法 ...
- 京东11.11大促背后,那些系统架构经历了些什么
一年一度的京东11.11电商大促,是一次用户的狂欢,也是一次京东智联云架构师们的大型测验.在海量流量.高频用户访问和大量不确定性的DDos攻击之下,系统架构面临了太多考验.在今年京东11.11期间,京 ...
最新文章
- java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
- 【年终总结】有三AI至今在人脸图像算法领域都分享了哪些内容?
- 客户端证书错误避坑指南
- linux mint 蓝牙,Linuxmint19蓝牙连接的问题
- Java LinkedHashMap getOrDefault()方法与示例
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
- MTK 驱动开发(39)--低功耗分析工具
- JavaWEB过滤器和监听器技术
- “围剿”余额宝!微信零钱通能否逆袭成功?| 畅言
- bash: test1: command not found
- 头文件malloc.h:函数 mallopt()的选项
- mac系统怎么获取最高权限删除顽固文件?
- 初识:心血管磁共振(CMR)成像
- YARN原理及工作流程详解
- 五年级春期计算机教案,五年级下册信息技术教案
- c语言设计计算器的意义,C语言结课设计之计算器功能
- python协程处理海量文件_Python使用asyncio和run-In-Executor线程池处理多个文件的同时下载,python,协程,加,runinexecutor...
- nmcli命令详解>>>创建热点,连接wifi,管理连接等
- MySQL索引数据结构二叉树、红黑树、B-Tree、B+Tree、Hash
- r语言 林元震_林木多地点半同胞子代测定遗传分析 R语言程序包及其应用
热门文章
- 中原银行校招笔试c语言,中原银行校招很难吗?笔试都考什么?
- 大鱼吃小鱼java程序设计
- 饥荒lisp_创建饥荒(Don't starve)专用服务器(Dedicated Server)遇到的问题
- 如何重命名mysql数据库_如何重命名MySQL数据库?
- C++网站开发MVC框架TreeFrog Framework教程——7.ERB模板
- 详解TCP的四报文挥手
- 【CVPR 2021】Refine Myself by Teaching Myself : Feature Refinement via Self-Knowledge Distillation
- class path resource [springMVC-servlet.xml] cannot be opened because it does not exist
- 基于LORA SX1278的温度监控控制系统开发设计-软件方案基于时分复用TDMA
- 听精品教学展示课后感