一个20到1000qps支付系统的成长
别叫我风哥
世上只有两种事,一种是我不想做的,另一种是我做成了的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
支付系统-1.3.1版本部署性能测试
由于本来未打算写博客记录调试点点滴滴,所有前面的几个版本都没有做数据记录与运行时状态截图,只能大致的说下系统的改进流程。1.2中,我将tcc相关的存储由mysql迁移至redis,同时将可靠消息系统的存储也由mysql迁移至了redis,同时引入了mycat做数据库的集成管理,方便今后的数据库扩容。期间遇到了很多问题,例如随着qps的升高,account表与point表所在的数据库cpu使...原创 2018-09-02 23:09:04 · 662 阅读 · 1 评论 -
支付系统项目简介与资源介绍
最近看了到了一个开源的支付系统-龙果支付,恰好公司有很多本人能调用的服务器资源,本人便打算在龙果支付的基础上构建一个能承受更大qps的支付系统。1.龙果支付简介 龙果支付是本人偶然发现的一个开源的支付系统,该支付系统已经集成了支付宝与微信作为支付渠道(但自身并没有做自己的支付产品),虽然自身并未做支付产品,但该系统基本涉及到了支付系统的重点,包括可靠消息服务、tcc事务、最大...原创 2018-09-02 23:09:37 · 2168 阅读 · 2 评论 -
原始架构与性能——mypay1.0
可在svn地址中tag目录下寻找1.0版本,并根据接下来的部署方案,运行本系统,对本系统有一个大致的了解初识龙果支付1.0系统的运行只是为了让大家能把项目跑起来,性能不是关注的重点,因此这部分我是在家里完成的。运行的设备为i3(4cpu),8gb笔记本一台,I7(7700K),16gb台式机一台。以下为网络拓扑图:其中台式机创建了4台虚拟机(2cpu,2gb):192.168....原创 2018-09-02 23:08:21 · 445 阅读 · 0 评论 -
支付系统-1.3.4版本部署性能测试
1.3.4版本更新1.所有消息都改为异步发送,消息子系统部分方法改为异步调用2.tcc事务开始支持子事务异步调用3.添加web程序中添加了限流器,设置的流量阈值为1500次/s,以保障系统不会被高流量冲垮 1.3.4测试:测试环境介绍:service服务:10.8.59.158(gen8,12cpu),10.8.59.179(gen9,12cpu),10.8.59.17...原创 2018-09-02 23:10:08 · 3150 阅读 · 0 评论 -
支付系统尚存在的缺陷
1.可靠消息存储方式由mysql改为redis后,存在数据丢失的风险。redis的主从复制为异步复制,若master已经写入了数据,但该数据还未同步到slave上,此时master发生崩溃或断电等情况,可能会丢失部分消息数据,那么若是这些消息正好在消息队列中丢失了,就会存再消息完全丢失的情况。为应对此情况,需要重新设计可靠消息子系统,至少应该为此情况提供一个补偿方案。2.现有的支付请求都是平均...原创 2018-09-02 23:10:24 · 592 阅读 · 0 评论 -
支付系统-1.3.3版本部署性能测试
1.3.3版本更新 1。修改消费队列的消费形式,修改前消费者全力消费消息,并堆积在了queue任务中,修改后将根据任务的消费能力消费消 息,来不及消费的消息将堆积在mq中 2。修改消费队列任务线程池满负荷时继续提交任务抛出拒绝任务异常导致任务整体退出的bug,现对线程池抛出拒绝异常做了 处理 3。合入了tcc相关的代码 4。完成了redis由单机到集群的迁移,现有代码...原创 2018-09-02 23:09:55 · 506 阅读 · 0 评论
分享