技术应用 | 保险业信创数据库切换新模式

B站影视 日本电影 2025-04-21 10:01 1

摘要:在当今全球化经济格局历经深度调整且科技竞争呈白热化态势的大背景下,技术自主可控已然跃升为关乎国家核心竞争力与经济安全的核心战略要素之一。众诚汽车保险股份有限公司作为金融保险领域的关键参与者,聚焦财产保险核心业务,创新性提出并成功实施全栈信创数据库切换,对核心应

文/众诚汽车保险股份有限公司 陈晓岚 林爱苹 王金一

在当今全球化经济格局历经深度调整且科技竞争呈白热化态势的大背景下,技术自主可控已然跃升为关乎国家核心竞争力与经济安全的核心战略要素之一。众诚汽车保险股份有限公司作为金融保险领域的关键参与者,聚焦财产保险核心业务,创新性提出并成功实施全栈信创数据库切换,对核心应用(承保、理赔、收付费等)进行信创数据库适配改造,一次性完成信创数据库切换,为同业提供了轻量级、易实施、可参考的信创切换新模式。

在推进信创数据库切换这一关键进程中,众诚保险无可避免地遭遇了一系列复杂且艰巨的挑战。于技术维度而言,数据兼容性困境、数据同步障碍、应用适配难题、数据库性能瓶颈以及性能压测难点等诸多技术难题如荆棘般密布;从实施角度来看,项目呈现出规模庞大、辐射范围广泛的特性,并且需要在极为紧迫的时间框架内完成切换任务。然而,行业内全栈切换成功的案例极为稀缺,这使得众诚保险无法借鉴外部经验,只能依靠自身精心组建的专业团队,通过反复且深入的论证以及模拟演练,全力降低可能存在的未知风险。历经数月艰苦卓绝的攻坚作战,成功对承保、理赔、收付费等核心应用及周边辅助系统完成共计40余个系统的适应性改造,于2024年11月将Oracle数据库一次性成功切换为信创数据库并上线运行,为金融行业数据库信创转型提供了极具价值的参考范例(见图)。

图 核心业务相关系统部署架构图

1.数据库选型

自2023年年末起,众诚保险正式启动数据库选型试点工作,始终秉持“先行先试,全面测试”的原则,对多种信创数据库产品展开全方位POC验证,最终选择OceanBase数据库,以此为后续的切换工作夯实基础。

2.JDK升级

鉴于OceanBase 4.x版本对JDK 8的硬性要求,在面临预算与人力资源双重限制的情况下,众诚保险将原本使用JDK 5/6/7的系统统一升级至OpenJDK 8,并通过自主定制化的方式巧妙地解决了接口不兼容问题,实现了系统性能与兼容性的良好平衡。

3.中间件升级

为了充分契合信创要求,众诚保险基于开源的Tomcat源码进行了深度定制化改造,成功研发出能够满足自身业务需求的中间件——“众枢”。通过创新采用JNDI兼容方式与 Maven预编译技术,有效减轻了测试人员的全量验证工作负担。针对部分深度依赖WebLogic EJB等第三方系统且因工作量巨大无法在预定工期内完成应用升级或WebLogic版本升级的特殊情形,众诚保险另辟蹊径,采取让WebLogic 10兼容OpenJDK 8的解决方案,确保了整个系统架构的稳定性与完整性。

1.深度评估与精细规划

众诚保险精心组建了一支跨部门的专业团队,团队成员涵盖业务专家、系统架构师、资深开发人员以及测试人员等多个专业领域。该团队对各子系统进行了全方位的“系统体检”,详细梳理批量任务流程,精准明确任务优先级、执行频次以及相互之间的依赖关系。同时,深入剖析Oracle代码逻辑,运用精湛的技术绘制存储过程、函数、触发器调用链路图,进而精准定位高风险、高复杂度的代码模块。基于此,制定出详尽周全的改造计划,合理划分项目阶段,科学设定里程碑与交付时间节点,保障整个项目能够有条不紊地推进。

2.模拟测试先行

众诚保险精心搭建模拟测试环境,按照与生产系统架构和数据规模一比一的比例精准复刻,并引入信创目标数据库。将原系统数据依据业务场景进行分类抽取与脱敏处理后,导入新环境。针对改造过程中的重点与难点,诸如复杂批量任务、核心存储过程等,开展高强度、高频率的测试。通过模拟高并发、极限数据量等极端业务场景,反复校验新系统的性能表现与兼容性状况,提前充分暴露潜在问题,积累丰富的问题清单与行之有效的解决思路,进而形成完备的测试知识库,为正式改造工作筑牢坚实基础。

3.现有微服务架构系统助力

自2017年起,众诚保险便极具前瞻性地开始以全新的微服务架构对核心业务系统进行逐步升级改造。截至项目启动前,已经成功实现车险承保、非车承保、车险理赔、收付管理、发票管理、延保索赔、权限管理、外网查询、产品工厂等多个系统向微服务架构的转型。自 2021年起,众诚保险深入参与信创项目实施,并在过程中积累了宝贵经验。当前,新系统的技术架构已经依据信创改造需求进行了全面且深入的技术准备。因此,现有的微服务架构系统如同强劲的引擎,为信创数据库的迁移工作提供了显著助力。借助微服务架构的独特优势、先进技术以及丰富工具的有力支撑,众诚保险得以更高效、更可靠地完成信创数据库迁移这一艰巨任务。

4.代码改造攻坚

依据前期的规划与测试成果,综合运用代码重构工具并辅以人工审查,按照模块分步推进代码改写工作。严格遵循新数据库的语法规范,对存储过程等进行优化和简化,果断去除冗余代码,以“微服务”先进理念对大段复杂代码进行拆分,有效降低代码耦合度。针对兼容性问题,独具匠心地建立接口适配层,巧妙的封装差异全力保障数据交互顺畅无阻。每完成一个模块的改写,立即进行冒烟测试,确保功能正常运行,一旦发现问题能够及时回溯修复,杜绝遗留隐患。

5.并行作业与高效协同

众诚保险坚决打破部门壁垒,实现开发、测试、运维人员的紧密协作与协同作战。在开发阶段,测试人员提前介入准备测试用例,运维人员同步筹备新环境的部署工作。在条件允许的情况下,各子系统改造尽量并行开展,并建立每日、每周的例会沟通机制,及时分享工作进度与所遇难题,合理调配资源,集中优势力量攻克共性问题,避免重复劳动,从而大幅提升整体工作效率。

6.上线保障与回滚预案

本项目精心规划并实施了两轮模拟演练,全面演练整体应用及数据库切换过程,通过切换后系统的稳定性以及数据的准确性来严格验证切换步骤的合理性与正确性。针对本次迁移,众诚保险制定了完备严密的数据回滚预案,确保在切换出现严重问题时,能够在停机窗口内迅速恢复业务,有力保障业务的连续性,如同为项目系上了“安全带”。

1.应用层攻关

存储过程改造。众诚保险通过对函数库进行重构,在新数据库端精心封装同名或别名函数,通过巧妙的内部逻辑适配来模拟实现相近功能,有效解决逻辑差异问题;对于复杂系统包,依据业务功能进行拆解和重构,以微服务理念重新组织逻辑架构,成功隔离底层数据库差异,实现上层业务调用时的无感切换。

应用底层组件兼容改造。针对无法支持新数据库的ORM,众诚保险自主定义相关新数据库方言,妥善解决诸如分页等问题。对于老旧版本的Hibernate,通过深入修改其源码,成功纠正了在OpenJDK 8下反射生成无序SQL等棘手问题;通过精心修改Aspectj的源码,有效解决了其在新环境下导致CPU 100%的严重问题,确保系统底层运行的稳定与高效。

承保业务系统攻关。巧妙结合自动化工具,对承保业务系统中的每个菜单、每个链接、每个按钮展开全面的自我检测,精准捕捉并及时修改不兼容的语法错误;针对各个功能模块,采用相同的数据分别在信创改造前和改造后的系统上进行操作,细致比对最终数据是否一致。运用压测工具对校验频繁的功能进行压力测试,针对无法满足压测指标的功能进行深度的性能优化,全方位提升承保业务系统的质量与运行效率。

理赔业务系统攻关。大胆地对业务逻辑进行拆分,将业务功能细化至单表级别,最大限度地减少多表查询的业务场景。在此基础上,通过采用多数据源、接口等创新方式,极大程度降低了与周边系统、基础应用服务之间的耦合度;在切换过程中,专门按照一比一的比例搭建生产环境的预生产验证环境,采用旁路引流这一先进方式,将生产业务数据引流至预生产环境,实现了100%还原生产性能情况,最大程度地预演生产环境的业务场景,为排查信创产品的性能问题提供最为有利的支持与保障。

周边业务系统攻关。批量处理任务占据较大比重,众诚保险需要在特定时段内对其进行集中且高效的处理操作,这对系统的性能表现和稳定性提出了极为严苛的要求。与此同时,在面临技术路线切换与系统兼容性改造的关键节点,需要对涉及的海量代码进行逐行梳理和精准剖析,并且对语句语法进行调整,使其能够适配新数据库的架构规范。

2.数据库层攻关

分布式方案。采用三副本、多租户部署方案,结合金融保险业务特性,通过分投保单等方式建立多表组,结合业务数据分布特性进行有效的数据分区,充分利用分布式优势提高系统的响应速度,并发性能,提升用户的体验。

语法兼容。采用企业版的Oracle兼容模式,提高由Oracle平滑切换的可能性。充分进行Oracle回流进行兼容或性能评估,对于复杂的SQL进行业务设计层面的调优。

数据同步。采用专业的数据同步工具实现Oracle日志实时向新数据库同步的方案,保证低延时的实时同步效果,有效减少正式迁移过程中的停机时间窗口。此外,借助数据同步工具预留反向回流逃生通道,如同为数据迁移过程设置了一道“安全网”,大幅降低切换风险,确保数据迁移过程万无一失。

数据迁移。采用不停机的全量数据拉取方式,基于主键等唯一特性进行全量数据指纹比对,严谨确保数据迁移的正确性和完整性;同时结合日志同步方案保证数据迁移的实时性,使数据在迁移过程中既能够准确无误又能够及时更新,确保业务连续性不受影响。

3.测试验证攻关

在Oracle向新数据库切换过程中,应用系统测试阶段至关重要。在功能测试环节,首先梳理Oracle应用系统的功能点,构建测试用例并准备相关数据,依据业务特性确定优先级和重点测试场景,妥善解决版本分支并行难题并进行多轮兼容性验证。然后按照测试用例逐一测试核心业务功能与数据处理的准确性,通过测试管理工具记录缺陷并进行回归验证。

兼容性测试。涵盖软件、硬件与业务系统兼容性三个方面,分别检测应用系统与新数据库通信及相关兼容性、硬件环境适应性以及采用旁路流量回放测试SQL并分析执行失败原因,保障系统整体兼容性。

性能测试。依据Oracle历史数据与业务预期设定性能指标,运用Jmeter模拟负载并对比分析性能变化,在集中压测时曾遇到严重BUG,通过升级数据库版本得以修复,最终达到项目上线标准。

自动化测试。包括测试脚本开发,依据相关用例开发脚本模拟操作并记录结果,以及测试执行与持续集成。运行脚本进行多轮测试并集成到流程中,遇变更自动触发,且助力性能测试,提升测试效率与准确性。

众诚保险于2024年11月22日21点准时开启停机切换数据库的关键操作,经过紧张有序的工作,于2024年11月23日5点顺利通过业务验证,并在当天迎来系统切换后的首个交易日。经过一周的生产验证,系统运行平稳,前端操作人员几乎感受不到数据库已经进行了切换。此后一周,业务持续正常运转,保单数据高频流转,承保、理赔等复杂流程持续考验系统,而系统凭借前期扎实的优化工作,稳扛压力,顺利过关。

项目实现了众多技术创新与数据保障成果,例如自主研发适配中间件 “众枢”、ORM层组件以及数据同步工具,运用先进数据迁移技术,保障切换过程顺滑流畅。在数据保障层面,实现了无数据丢失、近实时同步、高吞吐量,确保了业务连续性。

此次核心系统的成功 “换芯” 具有多重里程碑式意义。这是全国范围内率先达成金融保险业核心系统信创数据库整体切换的壮举,打破了长期受制于国外技术的困局,依托自主创新能力,从底层架构搭建到上层功能实现,深度植入信创基因,为行业信创实践开辟出一条可复制、可借鉴的崭新路径。长期以来,由于核心系统数据库具有牵一发而动全身的高风险性和技术复杂性,整体切换方案在业内鲜有人成功实施。如今这一开创性方案成果落地,为后续同类系统革新升级提供了极具价值的范例样本,为金融保险业的信创工作提供了宝贵经验。

来源:金融电子化

相关推荐