其他
支付系统高可用架构设计实战
点击上方 Java后端,选择设为星标
二、问题
三、解决方案
3.1 尽可能避免故障
3.1.1 设计可容错的系统
3.1.2 某些环节快速失败“fail fast原则”
3.1.3 设计具备自我保护能力的系统
限制连接数
限制内存的使用
限制线程创建
限制并发
3.2 及时发现故障
3.2.1 实时报警系统
实时性-实现秒级监控; 全面性-覆盖所有系统业务,确保无死角覆盖; 实用性-预警分为多个级别,监控人员可以方便实用地根据预警严重程度做出精确的决策; 多样性-预警方式提供推拉模式,包括短信,邮件,可视化界面,方便监控人员及时发现问题。
3.2.3 分析系统
网络异常预警; 单笔订单超时未完成预警; 实时交易成功率预警; 异常状态预警; 未回盘预警; 失败通知预警; 异常失败预警; 响应码频发预警; 核对不一致预警; 特殊状态预警;
交易量异常预警; 交易额超过500W预警; 短信回填超时预警; 非法IP预警;
针对MQ消费队列,通过RabbitMQ脚本探测,实时分析队列深度; 针对数据库部分,通过安装插件xdb,实时监控数据库性能。
单通道网络异常预警:1分钟内A通道网络异常连续发生了12笔,触发了预警阀值; 多通道网络异常预警1: 10分钟内,连续每分钟内网络异常发生了3笔,涉及3个通道,触发了预警阀值; 多通道网络异常预警2:10分钟内,总共发生网络异常25笔,涉及3个通道, 触发了预警阀值.