五个9的可用度、秒级故障解决,探寻互联网金融应用之道
付钱拉提供各种各样的支付接口给商户,常用的就有快捷,个人网银,企业网银,退款,撤销,批量代付,批量代扣,单笔代付,单笔代扣,语音支付,余额查询,身份证鉴权,银行卡鉴权,卡密鉴权等.与其对应的支付通道有微信支付,ApplePay,支付宝等30多家支付通道,并且接入了几百家商户.在这三个维度下,如何确保不同业务、三方、商户、以及支付类型互不影响,付钱拉所做的就是拆分消息队列.下图是部分业务消息队列拆分图:
限制资源的使用 对于资源使用的限制设计是高可用系统最重要的一点,也是容易被忽略的一点,资源相对有限,用的过多了,自然会导致应用宕机.为此付钱拉做了以下功课: (1) 限制连接数 随着分布式的横向扩展,需要考虑数据库连接数,而不是无休止的最大化.数据库的连接数是有限制的,需要全局考量所有的模块,特别是横向扩展带来的增加. (2) 限制内存的使用 内存使用过大,会导致频繁的GC和OOM,内存的使用主要来自以下两个方面: A. 集合容量过大; B. 未释放已经不再引用的对象,比如放入ThreadLocal的对象一直会等到线程退出的时候回收. (3) 限制线程创建? 线程的无限制创建,最终导致其不可控,特别是隐藏在代码中的创建线程方法. (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |