业务发起一笔消费,先进入支付核心初始化流水、风控风险识别、渠道路由、渠道网关报文组装、上送、渠道应答。异步交易发送消息至 MQ 集群,任务作业监听消息,put 缓存,定时任务拉取进行状态查询,业务方通过查询服务查看该笔交易支付状态。
内部查询策略设计为两个队列、一个批处理:
任务分片:把一个任务分散到不同机器运行,既解决单机计算能力上限问题,也降低部分任务失败对整体系统影响。
elastic-job 不直接提供数据处理的功能,只将分片项分配各个运行中的作业服务器(即Job 实例,部署在一台机器上的多个 Job 实例也能分片)。开发需自行处理分片项与真实数据对应关系。
数据分片:订单号取模存储(zset)
zset元素数据过期,需业务自己处理,可单独建立检测机制,也可每次执行业务时执行判断,过期则移除,不然集合越来越大。
高并发访问下,系统所依赖渠道稳定性对系统影响很大,外部依赖存在大量不可控因素,如网络连接变慢,资源突然繁忙,暂时不可用,选型容错开源框架 Hystrix,隔离方案选择 thread。
交易系统中,查询业务量一般是支付业务的 6 倍,甚至更高,这样对查询服务性能就会有更高的要求。减少对核心交易影响,提升稳定性。
通道信息(机构号、商户号、密钥等)属静态信息,初次使用时存入分布式缓存系统(设置TTL,防止僵尸数据),同时增加手动修改的入口,方便人工干预。
QPS 较高的服务,那基本上这种场景下,你的服务也会跟着被拖垮。假如上游服务也没有设置合理的超时时间,故障就会扩散。这种故障逐级放大的过程,就是服务雪崩效应。采用容错框架 Hystrix 解决此问题。通过 Hystrix 命令模式,将每个类型的业务请求封装成对应的命令请求。每个命令请求对应一个线程池,创建好的线程池是被放入到 ConcurrentHashMap 中。
尽管线程池提供线程隔离,也要有超时设置,不能无限阻塞以致于线程池一直饱和。
实时展示各业务线程池资源,研发以此为参考评估资源是否够用、是否需升级机器资源等:
2.0全面对接内部监控平台,关注:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有