阅读文章:京东话费充值系统架构演讲

文章网址: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. 话费充值折扣数据库_《京东话费充值系统架构演进实践》--阅读

    京东话费充值业务线的订单量'水涨船高 ',同时对系统的各项运行指标要求更高,老的系统架构不足以支撑新的业务量,需要对系统进行升级.升级方案从以下几个层面进行. 1.应用层面 引入缓存 在应用层和数据库 ...

  2. 京东虚拟业务多维订单系统架构设计读后感

    阅读文章:京东虚拟业务多维订单系统架构设计 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486428& ...

  3. 京东B2B业务架构演变读后感

    阅读文章:京东B2B业务架构演变 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486624&idx=1 ...

  4. 苏宁易购:商品详情系统架构设计读后感

    商品详情系统是一个展示商品基本信息.参数等详情的系统,是商品购买的入口.它是电商平台中访问量最大的系统之一,苏宁易购大促期间PV量和UV量很大,这么大的访问量对系统的并发能力要求高.在业务上它与周边系 ...

  5. 刘慎宝:京东集团财务系统架构设计之路

    [IT168&ITPUB专稿]本文根据刘慎宝老师在2018年10月17日第十届中国系统架构师大会(SACC2018)现场演讲内容整理而成. 讲师简介: 京东集团高级架构师,10+年互联网研发专 ...

  6. 刘慎宝 :京东集团财务系统架构设计之路

    [IT168&ITPUB专稿]本文根据刘慎宝老师在2018年10月17日第十届中国系统架构师大会(SACC2018)现场演讲内容整理而成. 讲师简介: 京东集团高级架构师,10+年互联网研发专 ...

  7. 架构 | 京东商品搜索架构设计

    电商搜索系统存在以下特点: 数据量庞大.(上亿级别) 高并发.(日均pv过亿.数十亿) 一条商品数据由商品基本信息.价格.库存.促销.评价等组成,这些数据存储在各自业务系统当中.(多数据源导致构建索引 ...

  8. 京东商品搜索架构设计

    电商搜索系统存在以下特点: 数据量庞大.(上亿级别) 高并发.(日均pv过亿.数十亿) 一条商品数据由商品基本信息.价格.库存.促销.评价等组成,这些数据存储在各自业务系统当中.(多数据源导致构建索引 ...

  9. 京东物流AI智能大脑中台系统架构

    来源丨 网络 图源 网络 吴盛楠博士现任京东物流首席数据分析官 (Chief Data & Analytics Officer),负责大数据和 AI 的发展,运用运筹学.统计学.机器学习等算法 ...

  10. 京东11.11大促背后,那些系统架构经历了些什么

    一年一度的京东11.11电商大促,是一次用户的狂欢,也是一次京东智联云架构师们的大型测验.在海量流量.高频用户访问和大量不确定性的DDos攻击之下,系统架构面临了太多考验.在今年京东11.11期间,京 ...

最新文章

  1. java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
  2. 【年终总结】有三AI至今在人脸图像算法领域都分享了哪些内容?
  3. 客户端证书错误避坑指南
  4. linux mint 蓝牙,Linuxmint19蓝牙连接的问题
  5. Java LinkedHashMap getOrDefault()方法与示例
  6. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
  7. MTK 驱动开发(39)--低功耗分析工具
  8. JavaWEB过滤器和监听器技术
  9. “围剿”余额宝!微信零钱通能否逆袭成功?| 畅言
  10. bash: test1: command not found
  11. 头文件malloc.h:函数 mallopt()的选项
  12. mac系统怎么获取最高权限删除顽固文件?
  13. 初识:心血管磁共振(CMR)成像
  14. YARN原理及工作流程详解
  15. 五年级春期计算机教案,五年级下册信息技术教案
  16. c语言设计计算器的意义,C语言结课设计之计算器功能
  17. python协程处理海量文件_Python使用asyncio和run-In-Executor线程池处理多个文件的同时下载,python,协程,加,runinexecutor...
  18. nmcli命令详解>>>创建热点,连接wifi,管理连接等
  19. MySQL索引数据结构二叉树、红黑树、B-Tree、B+Tree、Hash
  20. r语言 林元震_林木多地点半同胞子代测定遗传分析 R语言程序包及其应用

热门文章

  1. 中原银行校招笔试c语言,中原银行校招很难吗?笔试都考什么?
  2. 大鱼吃小鱼java程序设计
  3. 饥荒lisp_创建饥荒(Don't starve)专用服务器(Dedicated Server)遇到的问题
  4. 如何重命名mysql数据库_如何重命名MySQL数据库?
  5. C++网站开发MVC框架TreeFrog Framework教程——7.ERB模板
  6. 详解TCP的四报文挥手
  7. 【CVPR 2021】Refine Myself by Teaching Myself : Feature Refinement via Self-Knowledge Distillation
  8. class path resource [springMVC-servlet.xml] cannot be opened because it does not exist
  9. 基于LORA SX1278的温度监控控制系统开发设计-软件方案基于时分复用TDMA
  10. 听精品教学展示课后感