业务挑战
该银行部分系统采用了 DNS + MySQL 主从的高可用架构,如风控系统。当数据库主节点发生故障时,需通过人工介入切换域名的方式进行重新映射,来完成整体 failover,RTO 为分钟级。 为进一步改善业务体验,同时满足未来业务发展需要,需要在对业务无入侵前提下,达成如下目标:
- 提升业务系统的「可靠性」;
- 提高业务系统的「可维护性」;
- 增强业务系统的「安全性」;
- 增加系统架构的「可扩展性」。
设计思路
为了在现有技术栈的基础上实现可靠性、可维护性、安全性和可扩展性的提升目标,在设计思路上考虑引入数据库网关。通过引入数据库网关,可以为用户提供一个统一的访问接口,充当数据库系统和应用程序之间的桥梁。这样一来,应用程序与数据库之间的交互变得更加简化,同时为架构、研发和运维团队提供了其所关注的能力。
1. 统一接入
目前行内所使用数据库种类较多,通过数据库网关对分散的数据源进行整合,为用户提供统一的数据库视图和接口,无须再关注底层存储细节。
2. 可用性探测
可用性探测能力能够主动监测和检测底层数据库系统的可用性,并及时采取相应措施以确保系统的连续可用性。
3. 安全合规
金融行业对数据的安全性和合规性要求非常高。借助数据库网关为业务系统提供更强大的安全管控能力,如访问控制、数据加密和审计日志等,以确保敏感数据的保护和合规性要求的满足,遵守相关法规和监管要求。
4. 高性能与可伸缩性
对于金融场景海量数据处理和高并发请求,数据库网关可以提供高性能和可伸缩性的能力,通过读写分离、负载均衡及弹性伸缩等技术,确保业务快速响应及保持良好的扩展性,为用户提供高效的交易处理和良好的体验。
5. 数据分析和业务洞察
金融机构需定期对大量的数据进行分析,以获取业务洞察、风险评估和决策支持。数据库网关的联邦查询能力可以支持跨系统异构数据的实时访问和查询,通过复杂数据的分析了解客户行为、市场趋势和风险状况,从而优化业务策略和创新产品。 综上,对于该系统优化升级需求,引入数据库网关是一个升级平滑、投入小且收益高的方案。
解决方案
SphereEx 数据库网关支持多种类型数据库,它面向应用程序和用户提供数据库网关功能,如读写分离、负载均衡、高可用探测、数据库防火墙、访问控制和安全审计等能力,支持如 Oracle、MySQL、PostgreSQL、openGauss、人大金仓及其他国产化数据库。 在风控系统中,网关的高可用探测能力实现了数据库节点状态感知、确认故障及上线从库全流程切换处理,过程中无需人工介入,达成提升业务系统可靠性的目标。
下面是关于故障探测、重试及切换过程的描述。
- 监测连接状态:数据库网关能够周期性地探测与底层数据库系统之间的连接状态。通过心跳的验证,网关可以验证与数据库的连接是否正常,确保数据库系统处于可用状态。
- 故障检测与重试:当数据库网关在请求数据库时遇到连接异常或错误时,它能够执行故障恢复机制。网关可以自动进行错误处理,例如进行重试操作,恢复数据库连接,尽量避免中断用户的请求。
- 确认故障与切换:当数据库网关发现底层数据库系统出现故障或不可用的情况时,它具备自动切换到备用数据库的能力。网关会及时检测到故障,并迅速切换到备用数据库,从而保障系统的连续可用性。
- 报警与日志记录:数据库网关可以生成详细的日志记录,包括连接状态、故障信息、切换过程以及其他相关的事件,结合日志内容可通过运维平台发送警报通知,及时获取异常及恢复情况。
总的来说,通过网关可用性探测能力,能够实现对底层数据库系统的主动监测和故障处理,提高系统的可用性和稳定性。这样可以确保系统在面对数据库故障或异常情况时能够快速切换和恢复,并提供可靠的服务给用户。
此外,对于系统下一阶段的扩展性要求,SphereEx 数据库网关预留了较好的扩展空间。
- 读写分离:智能路由读写流量,提升系统整体吞吐量、提升资源利用率,主从延迟感知能力保证数据一致性;
- 数据库防火墙:通过 SQL 匹配的方式识别并完成风险 SQL 拦截,避免误操作,最大程度降低业务系统风险;
- 访问控制:精确控制授予每个用户的库级、表级、列级的操作权限,可对接第三方 LDAP;
- 数据库审计:记录所有执行过的 SQL 语句,便于企业进行 SQL 安全审计操作。
客户收益
通过 SphereEx 数据库网关解决方案,该银行客户面向架构、研发和 DBA 构建起了面向数据库的功能生态,将异构数据库的全局能力统一纳管,应对灵活多变的应用场景。
- RTO 由分钟级降至秒级;
- 符合金融级业务可用性要求;
- 全流程自动化 failover,无需人工介入;
- 预留扩展插槽,如读写分离、安全管控等能力。