美团点评智能支付核心交易系统的可用性实践:https://tech.meituan.com/Trade-High-Availability-in-Action.html

今天看了一篇支付相关的博客,回头看了下我们的清结算系统,引发了一些思考。

1、消除依赖、控制依赖、弱化依赖

消除依赖:交易系统将订单数据推送给MQ,而清结算系统从MQ上拉取订单数据,这样的优点是交易与清结算消除了依赖,实现了交易与清结算的解耦。

控制依赖:MQ接收消息依赖交易系统,清结算系统拉取消息依赖MQ

弱化依赖:对于以上依赖关系,当MQ发生故障时,交易系统与清结算系统将无法通信,这样的话我们可以直接采用RPC调用通信,实现弱化依赖的效果,达到容灾处理。

2、事务中不包含外部调用

这里的外部调用,可直接理解为调用外部服务接口。当调用外部服务接口时,可能出现一些不稳定因素:比如有可能遇到外部服务挂掉引起调用接口失败,或者网络不稳定引起的调用接口超时,当遇到这种情况的时候我们一般采用重试机制,一般默认重试3次,当最后一次调用失败则报警,人工干预。

而事务中如果包含外部调用,必然会造成大事务,大事务会造成其他对数据库的连接请求获取不到,导致和这个数据库相关的所有服务处于等待状态,造成连接池被打满,多个服务直接宕掉。

解决方案:

排查各个系统的代码,检查是否存在RPC调用,HTTP调用,消息队列操作,缓存,循环查询等耗时操作,将这些操作移到事务外,理想情况事务中只处理数据库操作。

建议不要使用xml文件配置事务,而使用注解的方式。原因是XML配置事务,第一可读性不强,第二切面通常配置的比较泛滥,容易造成事务过大,第三对于嵌套情况的规则不好处理。

对大事务添加监控报警。

3、合理设置超时时间和重试次数

清结算系统的响应时间=内部处理时间+外部依赖超时时间*重试次数

清结算系统存在一些外部服务调用、消息队列操作等,而当这些依赖方发生故障时,如果超时时间过长、重试次数过多,或者系统长时间不返回,可能导致连接池被打满,系统宕掉;如果超时时间设置过短,则错误会增多,系统可用性就比较差。

解决方案:

超时时间=响应时间*1.5;

调用方的超时时间依赖被调用方的响应时间;

可默认重试次数为3;

4、处理慢查询

读写分离。读走分库,写走主库

优化索引。索引过多影响数据库写性能,索引不够查询会慢;调研所有查询sql,优化索引,页面查询,可设置默认值,走组合索引,DBA建议索引个数不要超过5个,组合索引字段不要超过5个

将查询分为实时查询、近实时查询、离线查询。实时查询可直接查询数据库,其他可通过ES实现一个查询中心,处理近实时查询和离线查询

不要出现大表。当一张表的数据量达到千万级别,效率将急剧下降,则可考虑分库分表

5、熔断

当依赖的服务不可用时,服务调用方应采用一些技术手段,向上提供有损服务,保证业务柔性可用。

解决方案:

自动熔断,

手动熔断,

6、限流

系统可能收到一些有意或无意的请求,如DDoS攻击、用户失败重刷。

流量控制中常用的算法:令牌桶、漏桶、计数器。可以使用Guava的RateLimiter来实现,其中SmoothBurstry是基于令牌桶算法的,SmoothWarmingUp是基于漏桶算法的。

转载于:https://www.cnblogs.com/tilamisu007/p/9037078.html

清结算系统的一些思考相关推荐

  1. 技术节系列 | 支付账务清结算系统设计

    点击「京东数科技术说」可快速关注 -- 个人支付清结算团队小伙伴们 「摘要」账务清结算系统属于京东数科支付核心系统,负责记录京东数科客户备付金出入金详情,控制交易不垫资.不挪用客户备付金,保障京东数科 ...

  2. 支付“清结算”体系的设计方法

    支付完成以后进行履约,履约完成以后就需要清算各方利益并最终进行结算,清结算体系与支付体系并行是支付范畴另一个非常庞大的体系. 一.清算系统设计 我们都知道一笔支付最终都是要进行清算的,业务一般都会有众 ...

  3. 电商网站的积分要不要年末清零?

    咖友提问:电商网站做年底积分清零时要考虑哪些因素? 积分清零到底有没有必要,如果要做,要考虑哪些因素? 来自建君 味库 产品经理的回答 首先,思考一下为什么会有积分体系,了解积分存在的作用和目的.然后 ...

  4. 详解互联网平台的资金系统方案 自建支付清结算系统优势明显

    场景内金融是互联网金融的发展方向.金融生态圈也会逐渐向脱媒化.去银行化演变.我们看到越来越多的平台纷纷涉足和提供金融服务,如BAT.新浪.齐家.海尔等.各家平台通过改变交易场景,优化操作的便捷性.增强 ...

  5. 零伽壹链改研究:区块链技术在支付及清结算的变革与创新!

    区块链不易篡改.公开透明.可追溯等特性提供了信任机制,与金融行业各业务场景的需求,例如,安全性.稳定性.隐私性.可监管性等高度契合,因此具备改变金融基础架构的潜力.区块链凭借其自身的特点,在支付和清结 ...

  6. 从技术全景到场景实战,透析「窄带高清」的演进突破

    随着5G时代的到来,互联网短视频.电影电视剧.电商直播.游戏直播.视频会议等音视频业务呈井喷式发展. 作为通用云端转码平台,阿里云视频云的窄带高清需要处理海量.不同质量的视频.对于中高质量的视频,现有 ...

  7. 浅谈微服务的来龙去脉

    作者:王清培(Plen wang) 沪江 公共业务平台 应用架构师 转载至沪江技术学院微信公众号 背景介绍 最近一段时间公共业务平台在进行大面积的重构,对原来的技术栈进行迁移,逐渐往Java.Go.N ...

  8. 美团配送资金安全治理之对账体系建设

    https://tech.meituan.com/balanceAccounts.html 前言 随着美团配送业务的飞速发展,单量已经达到千万级别,同时每天产生的资金额已经超过几千万,清结算系统在保证 ...

  9. 猎豹移动傅盛:区块链将重塑整个社会关系,CEO恐将职位不保

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 临近年末,各大互联网公司纷纷开启了年会活动,与说是年会,不如说是年终总结.除了发年终奖,自然 ...

最新文章

  1. 为什么 P8 程序员的代码你写不出来?零拷贝了解一下
  2. 小鹏汽车招股书,满是智能技术自研的标签
  3. 计算机竞赛作文,计算机打字比赛作文例文
  4. Python 代码便利并行,这个操作秀啊!
  5. Android 环境配置
  6. CCNA实验(9) -- Frame Relay
  7. kendo-ui学习笔记——题记
  8. 玩转算法之面试-第六章(栈和队列)
  9. ASP.NET操作Excel
  10. 信道模型多径传播阴影衰落——无线接入与定位(2)
  11. 关于el-form中的rules未生效问题的解决方法
  12. 产品半夜发现bug让程序员加班,程序员应如何回应?
  13. 【裂缝识别】基于matlab GUI BP神经网络路面裂缝识别系统【含Matlab源码 1063期】
  14. echart 世界地图发光_echart世界地图(并且指定国家高亮显示)?
  15. C盘清理 / 磁盘清理
  16. 《你必须知道的.NET》读书实践:一个基于OO的万能加载器的实现
  17. 多金的ToG项目总结——数字人民币
  18. fatal The remote end hung up unexpectedly
  19. 计算机网络详解--套接字编程
  20. cps配置之淘宝联盟篇

热门文章

  1. SDUT 2127 树-堆结构练习——合并果子之哈夫曼树(优先队列)
  2. 如何养成一个习惯(持续更新)
  3. Unity 类似FingerGestures 的相机跟随功能
  4. MSIL 教程(三):类和异常处理(转)
  5. Oracle的SOME,ANY和ALL操作
  6. 虚拟串口工具_com0com
  7. was web 服务器性能测试,was web 服务器性能测试
  8. java 静态实例_Java实例和静态方法
  9. vue手机端回退_华为官方教程:以 P40 为例,鸿蒙 OS 2.0 Beta 版本回退到 EMUI 11 稳定版...
  10. Castor映射java对象