当前位置: 首页 > news >正文

慧聪网登录/搜索引擎优化的简称

慧聪网登录,搜索引擎优化的简称,江西中联建设集团有限公司网站,怎么设计网页背景图片P17 是中国太平洋保险(以下简称太保)关联关系最为复杂、商业数据库绑定程度最深、业务影响最多的核心系统之一。但就是这样一个对太保业务至关重要的系统却被选为数据库升级的“实验品”。当然,说是“实验品”只是因为这是太保第一次对关键的…

P17 是中国太平洋保险(以下简称太保)关联关系最为复杂、商业数据库绑定程度最深、业务影响最多的核心系统之一。但就是这样一个对太保业务至关重要的系统却被选为数据库升级的“实验品”。当然,说是“实验品”只是因为这是太保第一次对关键的核心系统进行数据库升级,而并非真的只是“实验”。实际上,由于该系统十分重要,此次数据库的升级只许成功不许失败。

从去年年底项目立项,到 12 月 18 日 P17 第一个子系统成功上线,并完成了全量数据库迁移;到今年 5 月 13 日核心系统中最难的核心交易库上线。至今,P17 核心系统已经稳定运行了 200 多天。事实证明,太保不仅顺利完成了 P17 的数据库升级,还从中收获了宝贵的数据库升级经验,为后续其他系统数据库的顺利升级打下了坚实的基础。

图片

作为太保运维保障级别最高的核心业务系统之一,P17 已经有 10 多年的历史。它是太保旗下的产、寿、健康、长江等所有子公司客户服务系统的整合,涵盖了太保几乎所有子公司业务的服务入口功能,包括车险报案、道路救援、寿险保全受理、投保预约等等,对接周边系统 200 多个,为公司 6 地 8 个电话中心超过 2500 个坐席提供系统服务。

“P17 核心系统的数据库升级是出于太保数字化转型战略的要求。”太保数智研究院数据库首席专家林春谈及 P17 数据库升级原因时表示。

数智研究院负责太保数字化转型战略的制订以及执行,同时还承担了卡点技术的攻坚克难,确保太保在核心技术的自主可控和行业领先。林春是数据库方向的负责人。

林春介绍,随着太保业务的不断丰富,P17 需要支持越来越多互联网类型的业务,这些业务不仅数据量大,还有瞬时高并发的特点。同时,P17 的数据库体量已经达到 30TB,还在继续增长,面临扩缩容的问题。

当然,太保决定对 P17 的数据库进行升级还有一个更长远的考虑。P17 的数据库升级复杂,太保希望通过该项目沉淀出知识和工具,为后面太保其他系统的数据库升级积累经验,帮助太保最终实现对数据库的真正自主掌控。

“太保数据库升级的策略是攻坚牵引,先难后易,先攻难的,有了经验之后,再换简单的。P17 的升级工作非常复杂而且有代表性,所以我们选了它。”林春说。

被称为太保最复杂的核心业务系统之一,P17 的数据库升级到底有哪些难点? “首先,这个系统要求 7x24 小时服务,务必高可靠,而且支持高并发。比如,在一些恶劣天气情况下,可能有 2500 名坐席同时在线,需要做到秒级响应,对数据库的实时性要求很高。如果处理不好的话,可能会变成一个舆情的问题。”林春说。

当然,挑战最大的还是 P17 与 Oracle 数据库的深度绑定。林春介绍,P17 对传统集中式数据库特性使用非常深入,Oracle 数据库的所有特性几乎在这个系统中都有体现,包括自定义锁、自治事务、嵌套表、索引组织表、PLSQL 包、物化视图、DBlink、触发器、系统视图。其存储过程数量庞大,总代码量近百万行。

在真正迁移之前,需要先把这些代码找出来然后再对代码进行重写,这个工作量就不小,成本高,风险大。同时,还需要对迁移的工具和流程进行优化,因为其中有大量复杂非表对象的迁移。这个过程同样成本高,风险大。

与数据库的绑定还体现在P17集成了大量周边工具软件和应用。P17 与很多周边软件协同工作,比如 IBM Datastage、IBM Cognos 等,这些软件都利用了很多 Oracle 数据库特有的功能,更换数据库后需要对这些软件重新适配。另外,高达 30TB 的数据量也放大了上述挑战的艰巨性。

正是基于这些原因,在 P17 新数据库的选型中,对高并发、高可用的支持和对 Oracle 数据库的兼容能力成为非常重要的考量指标。同时,P17中还有一些报表和数据分析的需求,这就要求新数据库不仅需要OLTP的能力,还需要有一定的OLAP的能力。另外,厂商的技术实力一定要足够强,具有技术兜底的能力,这一点在太保看来也非常关键。

图片

显然,在市场上能够符合太保要求、足以支撑 P17 这样核心业务系统的国产数据库并不多,特别是这种能力需要已在众多金融场景中得到验证。太保从功能、性能、易用性、完整性、可移植性、可靠性、扩展性、安全性等方面对市场上的数据库进行了全方位评估,最后选择了 OceanBase。

2022 年年初项目启动,太保与 OceanBase 厂商组成联合攻坚组,用国产分布式架构彻底取代传统商用主备架构,其中解除数据库与操作系统、中间件之间的耦合是重点,而应用改造问题的识别则是重中之重,因为识别效率的高低直接影响项目的成本和工期。

好在“指南针”等工具帮了大忙,它让识别的成本降低了 60%。“指南针”是太保自研的数据库应用改造预评估工具,它能够对 Oracle 数据库进行预扫描,包括近 20 个检查大类近 200 多个检查项,评估项全面、有效、高效,并初步给出问题原因、代码位置。它还有一个特色,就是能够辅助识别冗余大表、冗余索引,有助“数据库减负”。除了“指南针”外,P17 项目组还研发了索引建议助手和优化辅助工具等,也大大提高技术人员的效率。

对于 P17 系统集成的中间件和周边软件也进行了与 OceanBase 的重新适配。有些软件因为与 Oracle 绑定太紧就替换为对应的国产软件,比如,用帆软替换了 Cognos。有些无法完全替换也进行了功能剥离,比如 DataStage 中的加载功能用 OceanBase 的加载工具替代,调度功能也拆分出来用 Java 进行了改造。

当然,有些与数据库的绑定实在太深入,就需要技术人员来甄别,这也是最耗时和考验项目组技术实力的地方。

P17 项目就遇到了一个卡点,为此攻坚了半个月,就是在调用 hibernate 的框架时,出现了一个无法发现 V$SESSION 的报错。当时问题 SQL 识别不出来,后面在 Oracle 侧调用这个问题模块才定位出了这个 SQL。在对这个 SQL 进行分析后,判断这是一个语义级的报错,技术人员设法构造了 2 个虚拟的表和虚拟视图,其中没有任何数据,把它转化成了一个 SQL 层面的 NO_DATA_FOUND 异常。当抛出 NO_DATA_FOUND 的异常时也把这个模块的名字抛出来了,发现这是一个触发器的模块,后面技术人员据此定位到这个触发器模块,再对它进行了优化改造,才解决了这个问题。

在这个过程中还遇到了操作系统及内存方面的问题。技术人员通过对操作系统的底层进行跟踪,抓取了一些关键数据,发现问题出在 OceanBase 为了兼容 Oracle 数据库某些功能特性而开发的一个自定义函数,找到症结之后这个问题很快就解决了。

在此过程中,太保一直强调的厂商技术兜底作用也体现出了重要性。比如,定位到内存存在的问题之后,OceanBase 一天后就给出了修复方案和补丁包,这也让林春印象深刻。

“传统集中式数据库用了几十年,而国产数据库的应用历史要短得多,现在进行升级,不可避免会出现很多问题,或者我们会有特定需求,对此厂商一定要有足够的技术实力能够帮助解决,要能做到对数据库内核的真正掌控,这就是技术兜底的价值所在。”林春解释说。

图片

核心客服系统 P17 自 2022 年底上线,实现了业务成功交易率不低于 99.99%、交易总平均响应时间小于 1 秒、整体并发量 1500 人等预期指标。P17 在保持高性能、高可用能力的同时,还为太保带来了成本的节约和运维的方便等诸多好处,这些都为后续业务发展奠定了坚实的技术基础。

数据库软硬件成本的节约是本次数据库升级后最为明显的好处。林春介绍,P17 数据库通过 OceanBase 的高级压缩技术,结合“数据库瘦身”,存储容量节省 80% 以上,同时,分析型数据加工处理能力提升 10 倍,升级后的应用系统弹性扩缩容、处理速度、数据加工能力均实现大幅提升。

尤为值得一提的是,数据库瘦身带来的不只是存储空间的节省,还有计算能力的节省、网络的节省以及其他关联收益。比如,原来由于数据量太大不得不考虑进行分库分表,而现在通过瘦身就无需考虑这个问题。类似的,在进行数据迁移和备份这些操作时,10TB 与 5TB 或者 1TB,在执行难度上也有很大不同。

 “P17 项目中,OceanBase 的两大能力令我印象深刻,一个是 OceanBase 厂商的技术兜底能力,另一个就是 OceanBase 存储压缩技术。”林春说。

当然,太保的“数据库瘦身”并不单靠 OceanBase 的压缩功能。这次数据库的升级也不是简单的一对一替换,而是对数据库使用的一次梳理和对应用的一次改造,借此进一步推动了数据库使用的规范化。

林春介绍,过去由于 Oracle 数据库在市场上的占有率颇高,在使用中有很多不当之处。趁此对“瓶瓶罐罐”整理的机会,太保对不合理之处进行了调整。比如,原来有个高达 20TB 的保单系统,其中有字段存储的是大对象。在改造过程中,太保将这些大对象转移到对象存储中,原来的数据库中只是存放存储路径,调整后的数据库不到 2TB,应用程序的性能也得到了极大提升。

另外,由于 OceanBase 可以同时兼容 MySQL 和 Oracle 版,这样两类系数据库都可以迁移到 OceanBase 中统一进行纳管,提高了运维效率。

图片

除了上述有形的收益,P17 项目另一个非常重要的收益是为后续的数据库升级积累了经验、培养了人才,这些对于太保的数字化转型非常重要,这也是当初太保甘愿冒险选择 P17“开刀”的重要原因。

据悉,为配合数据库的升级,太保完成了 1127 人的国产数据库的认证。今天在太保不管是研发侧还是运维侧都已经普遍掌握了国产数据库的相关知识,这笔“财富”也是相当难得。

同样宝贵的还有在 P17 项目中打磨出来的工具和方法论。比如,“指南针”这个工具现在已经在太保集团,包括产险、寿险、科技,还有长江养老以及健康险等系统得到应用,对迁移成本的降低起到了非常关键的作用。

林春介绍,P17 系统数据库成功升级之后,太保还完成了数据量达 60TB 系统的企业信息视图系统的数据库升级,用的也是 OceanBase。虽然这个系统数据量更大,但这个系统的问题在 P17 系统升级过程机会都体验过了,所以进展得非常顺利。

随着数据库迁移的完成,今天 P17 系统的工作重点已经转向了日常运维。林春说,对于已经熟悉集中式数据库的太保运维人员这也是一个不小的挑战,因为分布式数据库对运维人员的能力要求比原来更高,他要具备全链路快速问题诊断的能力。好在 AIGC 技术的不断进步,智能化诊断工具的能力越来越强大,一定程度上扮演数字化助手的角色。

不过,林春提醒说,有些工作是 AI 替代不了的,比如对业务的理解,这也是 DBA 的核心价值所在,DBA 也需要对资深能力升级。

“自主掌控,最核心的就是人对产品和技术能力的掌握。用只是基础,更重要的是要在用的过程中沉淀出本地化的知识体系,能真正把产品用好,这才是真正的自主掌控。P17 系统的成功升级加速了太保的这一进程。”林春说。

相关文章:

中国太保首席数据库专家林春:先难后易,核心系统数据库升级复盘

P17 是中国太平洋保险(以下简称太保)关联关系最为复杂、商业数据库绑定程度最深、业务影响最多的核心系统之一。但就是这样一个对太保业务至关重要的系统却被选为数据库升级的“实验品”。当然,说是“实验品”只是因为这是太保第一次对关键的…...

数字孪生智慧工厂:电缆厂 3D 可视化管控系统

近年来,我国各类器材制造业已经开始向数字化生产转型,使得生产流程变得更加精准高效。通过应用智能设备、物联网和大数据分析等技术,企业可以更好地监控生产线上的运行和质量情况,及时发现和解决问题,从而提高生产效率…...

使用WebSocket实现聊天功能

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库设计二、实现代码1.SessionWrap2.websocket3.insertMessage4.清除未读 前言 使用WebSocket实现一对一的聊天功能与未读消息功能 一、数据库设计 会话…...

Ubuntu升级Cmake、gcc、g++

背景 最近要安装llvm,我选择的是从源码安装,所以要使用Cmake进行构建项目。但是服务器上的Cmake、gcc、g的版本都太低了,不符合要求,所以要对此进行升级。在本博客中采用的升级方法不一定是最好的方法(因为我也是参考…...

8月28日上课内容 第四章 MySQL备份与恢复

本章结构 前言:日志⭐⭐ MySQL 的日志默认保存位置为 /usr/local/mysql/data ##配置文件 vim /etc/my.cnf [mysqld] ##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启 log-error/usr/local/mysql/data/mysql_error.l…...

es字段查询加keyword和不加keyword的区别

在ES(Elasticsearch)中,查询字段名后面加上"keyword"和不加"keyword"有着不同的含义和用途。 当字段名后面加上"keyword"时,表示该字段是一个keyword类型的字段。Keyword类型的字段会将文本作为一…...

前端JavaScript将数据转换成JSON字符串以及将JSON字符串转换成对象的两个API

在前端 JavaScript 中,你可以使用 JSON.stringify() 方法将 JavaScript 数据转换成 JSON 字符串,以及使用 JSON.parse() 方法将 JSON 字符串转换成 JavaScript 对象。下面是这两个 API 的详细说明和示例: JSON.stringify(): 用于…...

Spring——Spring Boot基础

文章目录 第一个helloword项目新建 Spring Boot 项目Spring Boot 项目结构分析SpringBootApplication 注解分析新建一个 Controller大功告成,运行项目 简而言之,从本质上来说,Spring Boot 就是 Spring,它做了那些没有它你自己也会去做的 Spri…...

Python基础之基础语法(二)

Python基础之基础语法(二) 语言类型 静态语言 如:C C Java ina a 100 a 100 a abc # 不可以静态语言需要指定声明标识符的类型,之后不可以改变类型赋值。静态语言变异的时候要检查类型,编写源代码,编译时检查错误。 动态语…...

docker常见面试问题详解

在面试的时候,面试官常常会问一些问题: docker是什么,能做什么?docker和虚拟机的区别是什么呢?docker是用什么做隔离的?docke的网络类型?docker数据之间是如何通信的?docker的数据保…...

Auto-GPT 学习笔记

Auto-GPT 学习笔记 Auto-GPT 简介 Auto-GPT 是一个基于 GPT-4 的自主智能体实验项目。它展示了大规模语言模型的规划、记忆和工具使用能力。Auto-GPT 的目标是实现一个完全自主的 AI 代理。GitHub 仓库 Auto-GPT 核心模块 规划(Planning) 使用强化学习策略进行多跳思考。通…...

代码随想录 - Day30 - 修剪二叉树,转换二叉树 + 二叉树总结

代码随想录 - Day30 - 修剪二叉树,转换二叉树 二叉树总结 669. 修剪二叉搜索树 有点像是删除二叉搜索树的变形,改变了删除条件而已。 递归法: class Solution:def trimBST(self, root: Optional[TreeNode], low: int, high: int) -> O…...

[音视频] sdl 渲染到外部创建的窗口上

API SDL_CreateWindowFrom # 在外部窗口上创建窗口 其他 api 调用,按照之前的 代码 ui.setupUi(this); sdl_width ui.label->width(); sdl_height ui.label->height(); SDL_Init(SDL_INIT_VIDEO); sdl_win SDL_CreateWindowFrom((void*)ui.label->wi…...

MongoDB之索引

大数据量使用全集合查询,这是非常影响性能的,而索引可以加快查询效率,提高性能,所以这方面的知识也是必不可少的。 查询分析 explain()可以帮助我们分析查询语句性能。 语法 db.collection.find(...).explain()案例及结果 案…...

Redis的介绍

Redis的架构介绍如下: 1. 概述 Redis是一个基于内存的高性能NoSQL键值数据库,支持网络访问和持久化特性。 2. 功能架构 Redis提供字符串、哈希、列表、集合、有序集合、位数组等多种数据结构,支持事务、Lua脚本、发布订阅、流水线等功能。 3. 技术架构 Redis使用单线程的…...

一文了解Docker的用法

一、什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是…...

netcat的使用

目录 netcat简介 nc的使用场景 nc实现通信 创建一个服务端 创建一个客户端 具体案例 环境 win10在具体路径下执行命令 win7在具体路径下执行命令 netcat文件传输 nc文件传输的利用 服务器等待接收文件 客户端向服务器发送文件 服务器向连接的客户端发送文件 客户…...

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用 在2016年, 随着微软的Deep Crossing, 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出, 推荐系统全面进入了深度学习时代, 时至今日&#xff0c…...

前端常用 Vue3 项目组件大全

Vue.js 是一种流行的 JavaScript 前端框架,它简化了构建交互式的用户界面的过程。Vue3 是 Vue.js 的最新版本,引入了许多新的特性和改进。在 Vue3 中,组件是构建应用程序的核心部分,它们可以重用、组合和嵌套。下面是一些前端开发…...

javaee spring 静态代理

静态代理 package com.test.staticProxy;public interface IUsersService {public void insert(); }package com.test.staticProxy;//目标类 public class UsersService implements IUsersService {Overridepublic void insert() {System.out.println("添加用户");…...

Java 包装类和Arrays类(详细解释)

目录 包装类 作用介绍 包装类的特有功能 Arrays类 Arrays.fill() Arrays.toString() Arrays.sort() 升序排序 降序排序 Arrays.equals() Arrays.copyOf() Arrays.binarySearch() 包装类 作用介绍 包装类其实就是8种基本数据类型对应的引用类型。 基本数据类型引用…...

elementUi中的el-table表格的内容根据后端返回的数据用不同的颜色展示

效果图如下&#xff1a; 首先 首先&#xff1a;需要在表格行加入 <template slot-scope"{ row }"> </template>标签 <el-table-column prop"usable" align"center" label"状态" width"180" ><templ…...

在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?

相信大家在使用selenium做网页自动化时&#xff0c;会遇到如下这样的一个场景&#xff1a; 在你使用get访问某一个网址时&#xff0c;会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而&#xff0c;很不幸&#xff0c;Alert类处理的结果就是没有结果…...

python 基于http方式与基于redis方式传输摄像头图片数据的实现和对比

目录 0. 需求1. 基于http方式传递图片数据1.1 发送图片数据1.2 接收图片数据并可视化1.3 测试 2. 基于redis方式传递图片数据2.1 发送图片数据2.2 接收图片数据并可视化2.3 测试 3. 对比 0. 需求 在不同进程或者不同语言间传递摄像头图片数据&#xff0c;比如从java实现的代码…...

快速使用Git完整开发

本系列有两篇文章&#xff1a; 一是本篇&#xff0c;主要说明了关于Git工具的基础使用&#xff0c;包含三板斧&#xff08;git add、git commit、git push&#xff09;、Git基本配置、版本回退、分支管理、公钥与私钥、远端仓库和远端分支、忽略文件、命令别名、标签等内容。二…...

鲁棒优化入门(7)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(下)

0.引言 上一篇博客介绍了使用Yalmip工具箱求解单阶段鲁棒优化的方法。这篇文章将和大家一起继续研究如何使用Yalmip工具箱求解两阶段鲁棒优化(默认看到这篇博客时已经有一定的基础了&#xff0c;如果没有可以看看我专栏里的其他文章)。关于两阶段鲁棒优化与列与约束生成算法的原…...

Docker技术--Docker中的网络问题

1.docker中的网络通信 如果想要弄清楚docker中的网络通信问题,其实需要弄清楚这几个问题就可以:容器与容器之间的通信、容器与外部网络之间的通信、外部网络与容器之间的通信。 -a:容器与容器之间的通信,如下所示: 在默认情况下,docker使用网桥(Bridge模式)与NAT通信。这…...

ASP.NET Core 中的两种 Web API

ASP.NET Core 有两种创建 RESTful Web API 的方式&#xff1a; 基于 Controller&#xff0c;使用完整的基于ControllerBase的基类定义接口endpoints。基于 Minimal APIs&#xff0c;使用Lambda表达式定义接口 endpoints。 基于 Controller 的 Web API 可以使用构造函数注入&a…...

【线程池】如何判断线程池中的任务执行完毕(三)

目录 前言 1. isTerminated()方法 2. awaitTermination()方法 3.getTaskCount()方法和executor.getCompletedTaskCount()方法结合使用 4.使用CountDownlatch类 前言 通常我们使用线程池的时候&#xff0c;系统处于运行的状态&#xff0c;而线程池本身就是主要为了线程复用&…...

Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放

一、前言 视频监控系统中的图文警情模块&#xff0c;是通过Onvif协议的事件订阅拿到的&#xff0c;通过事件订阅后&#xff0c;设备的各种报警事件比如入侵报警/遮挡报警/越界报警/开关量报警等&#xff0c;触发后都会主动往订阅者发送&#xff0c;而且一般都是会发送两次&…...