热点账户高并发解决方案
背景:2018年初,直播答题风靡全国。来的快,去的也快,抖音突然崛起,具有了挑战微信的实力。
我司与头条合作,负责头条的红包雨业务。头条要求,200tps,最后最高达到140tps。
自此之后,公司开始了账户优化。
此前已经对第三方支付的账户进行了详细的描述。不再赘述。
账户就是余额加上流水(账户明细)。支付行业对数据的错误是零容忍的。
下面直接开始。
数据库行锁这里是你避免不了的。一次事务的时间是9ms的话,你的tps天花板最高就是110
所以第一招就是 减少事务时间,具体方法就是,减少事务的数据库操作,讲一些不太重要的操作进行分解。
第二招 优化网络,,其实就是减少了应用到数据库的交换机,给高并发应用配置资源,没啥意思,掠过。
第三招 异步
将这三点异步了,反正流水记录了,丢不了,有对账心里有底。下图同理
最后的大招,我们知道虽然进行了这些操作,但是对性能没有达到指数级别的提高。 事务持锁时间永远是你的瓶颈。这个就需要变个花样来打破。 将一个热点账户拆分为多个热点账户。 头条发红包的账户只有一个,我们将其拆分为三个虚的账户,哪一个没钱了,就销毁它,这种成本账户会监控其余额,一般不会没钱的,没钱就找头条充值。
当然还有分布式数据库,这个不是我擅长的掠过。
热点账户高并发解决方案相关推荐
- docker重启mysql数据丢失_mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发
前言 本文篇幅较长,全是干货,建议亲们可以先收藏慢慢看哦 写文不易,欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持! 本篇文章我们先来看一下mysql是如何确保数据不丢失的,通过本文我们可以了 ...
- 《Java并发编程入门与高并发面试》or 《Java并发编程与高并发解决方案》笔记
<Java并发编程入门与高并发面试>or <Java并发编程与高并发解决方案>笔记 参考文章: (1)<Java并发编程入门与高并发面试>or <Java并发 ...
- Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...
JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过! 1.JPG (37.82 KB, 下载次数: 0) 2018-12-3 09:40 上传 2.JPG (28 ...
- [转]淘宝下单高并发解决方案
周末参加了@淘宝技术嘉年华 主办的技术沙龙, 感觉收获颇丰,非常感谢淘宝人的分享.这里我把淘宝下单高并发解决方案的个人理解分享一下.我不是淘宝技术人员,本文只是写自己的理解,所以肯定是会有一些出入的. ...
- 关于SQL SERVER高并发解决方案
现在大家都比较关心的问题就是在多用户高并发的情况下,如何开发系统,这对我们程序员来说,确实是值得研究,最近找工作面试时也经常被问到,其实我早有去关心和了解这类问题,但一直没有总结一下,导致面试时无法很 ...
- 打车业务下单高并发解决方案
简介: 打车业务下单高并发解决方案 前言 在技术领域有一条准则,即不存在银弹技术.在实际工作中,通常无法通过几项简单的技术组合就解决实际业务中各种场景下的复杂问题.虽然追求架构的简单简洁也是架构师的目 ...
- 高并发解决方案--负载均衡
高并发解决方案--负载均衡 1,什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首 ...
- 【java】 java 高并发解决方案和高负载优化方法
[java] java 高并发解决方案和高负载优化方法 参考文章: (1)[java] java 高并发解决方案和高负载优化方法 (2)https://www.cnblogs.com/lonelywo ...
- 数据库高并发解决方案(一)查询优化
数据库高并发解决方案(一)查询优化 参考文章: (1)数据库高并发解决方案(一)查询优化 (2)https://www.cnblogs.com/wanglijun/p/10879314.html 备忘 ...
- 数据库高并发解决方案(二)部署优化
数据库高并发解决方案(二)部署优化 参考文章: (1)数据库高并发解决方案(二)部署优化 (2)https://www.cnblogs.com/wanglijun/p/10879332.html 备忘 ...
最新文章
- 从VirtualBox虚拟主机访问NAT客户机的方法
- 古巴雪茄高希霸世纪1.2.3.4.5.6.半世纪7款雪茄的区别?
- Java异常处理及异常机制介绍
- 日常生活 -- 嵌入式再学习前言
- Istio 2020 年 Roadmap——一切为了商用
- apktool重新打包,error:No resource identifier found for attribute ‘compileSdkVersionCodename‘ in package
- Linux下查看用户登陆后的操作记录
- 【POJ 3062】Party(2-SAT、tarjan)
- 利用before伪元素创建图标
- Android studio连接网易MuMu模拟器
- IEEE 802.15.4的信道接入机制一基础、信标和非信标帧网络
- Server Error in ‘/‘ Application.问题解决
- Visual Studio 版本号及其各个版本对应关系
- 开源的XAG迈向新征程
- 基于pynq的数字识别神经网络加速器设计
- unity(VR方向)实习生面试
- 管窥《平凡的世界》写作特点之细节处理3500字
- 移动互联网应用的阶段学习总结
- Fine-grained Detection —— DCL
- 分词词频分析和高频词搜索分布
热门文章
- 智慧工地解决方案施工升降机智能监控系统
- 最新emoji表情代码大全_最新出早晨好漂亮图片带字问候语 微信群夏季早晨好问候语祝福语表情图片大全...
- 网格交易法——震荡行情的必杀技交易策略
- 【2016年第4期】国务院批复建立促进大数据 发展部际联席会议制度
- 城市大脑一网统管数据中台建设方案
- 一款好用的三维贴图纹理制作软件:Substance Designer Mac 内附安装教程
- 录屏软件推荐:bilibili哔哩哔哩直播姬录屏软件下载使用指南
- 管理员权限自动注册Dll文件
- php libxml安装,关于linux 安装libxml2
- 使用iMazing将iPad中的视频文件导出至电脑