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

中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)

OceanBase《DB 大咖说》第 15 期,我们邀请到了中原银行金融科技部数据团队负责人,吕春雷。本文为本期大咖说的精选。

吕春雷是一位资历深厚的数据库专家,从传统制造企业、IT企业、甲骨文公司到中原银行,他在数据库技术与运维管理方面积累了丰富经验,这些经验在带领中原银行数据库团队从传统数据库向原生分布式数据库平稳升级的过程中起到了至关重要的作用。

吕春雷认为,要在DBA的职业道路上持续进步,首要的是对数据库怀有源自心底的热爱与兴趣,这是推动DBA不断前行的永恒动力;其次,需保持坚持不懈的学习态度,它如同登山者的拐杖,帮助DBA不断超越自我;最后,还需具备对生产环境的深切敬畏,这份敬畏能确保DBA对工作保持高度的责任心。

吕春雷正是将这三点贯穿在自己的工作中。在中原银行的数据库升级过程中,吕春雷是主要的技术负责人。他主导了中原银行从“小机+传统数据库”升级为“OceanBase+通用服务器”的迁移过程,目前已经完成了 30 多套系统的上线,初战告捷。本期《DB 大咖说》,吕春雷老师将分享中原银行如何顺利完成这一数据库升级,帮助银行实现从封闭架构转向开放架构。

1735026880

中原地区是华夏文明的发源地和经济中心,孕育了开封、洛阳、安阳等古都的辉煌历史,在中国文明版图中拥有超然的地位。

中原银行就诞生在这样一片土地上。中原银行是河南省属城市商业银行,成立于 2014 年 12 月,拥有 18 家分行,2017 年 7 月在香港联交所主板挂牌上市,目前全行总资产突破 1.3 万亿、员工人数近 2 万名。

2021 年年底,中原银行正式启动传统数据库升级,目前,已经先后将 30 多套 MySQL、Oracle 数据库上的应用系统成功升级到 OceanBase数据库之上,为中原银行通过数据洞察客户、市场、业务,指导日常经营管理决策发挥了关键支撑作用。

一、业务面临挑战,数据库亟待升级

升级之前,中原银行的数据库主要以 MySQL、Oracle 数据库为主,均属于传统集中式数据库。这些系统虽曾稳固支撑银行业务,但随着中原银行金融业务的成长,IT 系统交易并发量和数据量不断增长,传统集中式数据库无法快速扩展来满足系统对性能、容量的需求,迫切需要具备高扩展、高性能等关键特性的数据库支撑业务持续发展。 

同时,为了支撑中原银行的数字化转型战略,微服务和分布式架构先后得到了快速应用,基础软件如分布式中间件、分析型分布式数据库在行内均已部署,面向交易类的集中式数据库也已经成为转型瓶颈。

而成本也是此次数据库升级的一个驱动力。此前的信息系统数据库采用“小型机+集中存储+ Oracle ”模式,IT 运营成本长期居高不下,且近年来部分重要信息系统面临重构,亟需在兼顾基础设施成本前提下,提高重构后系统整体的处理能力。

另外,数据库作为关键基础软件之一,中原银行还需要在保证系统稳定运行前提下加快国产数据库升级进程,提高 IT 基础设施自主掌控能力。 

基于上述原因,2020 年 12 月,中原银行启动了新一代数据库选型工作,吕春雷作为中原银行数据库团队负责人,重点负责本次数据库选型。

多年负责数据库运维工作的吕春雷深知其中的挑战。过去这些年,银行先后上线了大量的系统,应用类型复杂,包括自研类、外采类,还有为银行量身定制的系统,这些系统来自不同开发商,开发习惯和代码质量存在显著差异,导致升级工作非常复杂。

“虽然银行有统一的开发规范和要求,但由于各开发商的能力及代码水平的不同,系统改造和数据库升级工作复杂度较高。特别是对于那些深度使用 Oracle 数据库特性的系统,可能涉及大量复杂 SQL 语句改写,这就更需要数据库原厂的大力支持。”吕春雷说。

此外,对于深度绑定 Oracle 特性的系统改造,中原银行需要在保证系统稳定运行的前提下,探索成本更低的解决方案,以实现业务的可持续发展。

二、6 大项、79 小项测试,敲定 OceanBase

根据中原银行信息系统建设需求,结合中国人民银行的《分布式数据库技术金融应用规范技术架构》以及同业的选型经验,中原银行总结了选择数据库的核心要求:具备高稳定性、高可用、扩展性、运维性、高性能、兼容性六大特性,同时兼顾综合成本、工具平台和生态发展。

“其中,稳定性和高可用是我们最为看重的两大要求。金融业务稳定是前提,特别是在出现故障时,比如机房级故障或者服务器级故障,必须有自愈机制,这样对应用的影响才会相对最小。”吕春雷说。

其次是扩展性,需要有在线横向添加或删除节点的能力,以提高数据库性能、容量能力。吕春雷解释,扩展能力是考虑选择分布式数据库的重要原因之一。过去中原银行部署了 Oracle RAC,虽然可以通过扩容来提升存储和计算资源,但 Share everything 架构决定了 IO 处理能力无法有效扩展。

根据数据库的选型要求,中原银行对国内领先的数据库产品开展了全方位测评工作,包括基础能力测试、性能测试、高可用能力、运维能力测试、兼容性测试、安全能力测试共 6 大项、79 小项的 POC 测试工作。在这场激烈的角逐中,OceanBase 凭借其在性能、高可用、运维效率等方面的良好表现脱颖而出,成为中原银行的最终选择。

“OceanBase 不仅在性能、高可用、运维性等方面充分满足我们的需求。同时,在总体使用成本方面也具有优势。综合评定之后,我们最终选定了它。”吕春雷表示。

除此外,吕春雷还提到中原银行非常看重的若干特性。如高度兼容 Oracle 和 MySQL,并提供自动迁移工具,支持迁移评估和反向同步以保障数据迁移安全,可支撑行业核心场景升级。此外 OceanBase 的透明水平扩展能力,让业务轻松实现扩缩容,其准内存处理架构助力系统保持高性能,保证最高能支持数千节点集群,单表行数轻松突破万亿级。

三、规范先行,技术赋能,国产升级迈进一大步

数据库选型只是数据库升级的第一步,数据的迁移和业务系统的重新上线才是项目组面临的真正考验。为此,中原银行制订了周密的数据库迁移计划,大体分为系统选择、改造分析、代码改造、测试、上线、分析总结等 6 个步骤。

选择系统是第一步。吕春雷介绍,“我们认为,越是重要的信息系统面临安全性威胁风险越高,国产升级的紧迫性就更强。因此,在信息系统选择时,中原银行优先选择重要的业务系统,且并发需求较高的系统,比如面向互联网类系统、渠道类系统等。”

在确定升级的信息系统之后,第二步是细致入微的评估工作。这项工作聚焦于 Oracle 特有语法的识别与适配,然后进行针对性改造。借助 OceanBase 迁移评估工具(OMA)进行全方位采集分析和评估诊断,全面扫描 SQL 语法、表结构及数据库对象,精准判断改造要点,简化改造流程。

在完成代码的修改之后,需要按照要求完成各类测试和上线前演练,这项工作会反复进行直到满足上线要求后方可准备正式上线。

正式上线分为两个阶段,第一阶段是数据迁移,第二阶段是数据校验。这部分工作借助 OceanBase 数据迁移工具(OMS)完成,它能实现全量+增量+分批校验+反向回写,完成迁移、校验和反写整个迁移过程。

“金融行业所有变更都必须具备可回退的能力,因而非常看重反向回写功能,OMS 在整个迁移的链路中能自动完成数据类型转换、自动完成反向回写,让整个迁移过程非常顺畅。”吕春雷说。

完成数据库的国产升级之后,还需要对系统性能进行监控和性能跟踪。虽然在正式上线之前已经做了充分的测试,但依然可能出现各种突发问题,比如性能抖动等问题。

吕春雷介绍,OceanBase 运维管理工具(OCP)给这项工作带来了很多方便,OCP 可以对性能较差的 SQL 先进行限流,然后通过 hint 方式改变和绑定执行计划,保障信息系统快速恢复后再进行根因分析。

当 OceanBase 正式上线之后,总结复盘的工作非常必要,包括上线前后性能和容量使用情况,以及上线过程中存在哪些问题、如何解决的,是否需要把对应的注意事项添加到规范中。吕春雷说,虽然每次上线都会做非常周密的准备,但上线后还是会出现一些突发的问题,借助 OceanBase 交付团队的大力支持,最终问题都得到了圆满高效解决。

不过,他希望以后中原银行的数据库团队能独立解决问题。他说:“我们的要求是自己能做的尽量自己做,尽早具备自主运维能力,这样才算是真正的自主掌控。”

四、稳定运行近 2 年,各项收益显著

中原银行从 2021 年 12 月立项进行国产数据库升级,到 2022 年 11 月全栈国产 OceanBase 集群在中原银行正式上线,手机银行等业务投入使用,后来信贷系统、网联支付、支付系统等先后陆续上线,这期间还完成生产同城双中心集群切换演练。

截至目前,OceanBase 以其卓越的性能与稳定性承载中原银行 30 余套信息系统的重任,其中重要信息系统占比高达 80%以上。这一成绩不仅是技术实力的展现,也是中原银行数字化转型决心的有力证明。

随着越来越多的信息系统,尤其是众多关键业务系统迁移到 OceanBase 后,各项收益也开始逐渐显现。

第一,性能。信息系统迁移至 OceanBase 数据库后,性能不低于升级之前。“考虑到之前的数据库是专有且昂贵的硬件设备,而现在的只是通用服务器,能保持性能一致其实已经是一个很大的进步。”吕春雷解释说。

第二,成本。中原银行原来使用的是”小型机+集中存储+Oracle”的组合,现在用的是通用服务器,较传统架构具备成本优势。成本下降还体现在资源的高效利用上。现在 OceanBase 可以通过在不同的资源池之间灵活调配实现快速扩缩容,而无需重要业务系统长期分配高水位硬件资源。

第三,运维效率。由于 OCP 提供了丰富的功能使得运维效率大幅提升。比如,现在进行生产系统的同城主备集群切换可以一键完成,6 秒就可以完成切换。这和集中式数据库形成鲜明对比;OceanBase 支持多租户,在一个集群里可以同时有 MySQL 租户和 Oracle 租户,可以采用统一的标准进行监控和管控。

第四,稳定性。OceanBase 上线以来,运行相对比较平稳,即便面对服务器突发故障,也能迅速恢复,有力确保业务系统连续性不受影响,真正实现了业务对故障无感。

回顾这几年的工作,吕春雷表示,近年来在数据库升级和数据库运维中积累的经验非常重要。随着国产升级浪潮的大步推进,中原银行的国产升级进程将显著加快,这些宝贵经验将帮助中原银行更为顺利地完成国产升级工作。

他表示,接下来中原银行将推进更多系统向 OceanBase 的迁移,同时,他们还在探索如何更好地使用 OceanBase 的新特性,充分挖掘其潜能,帮助中原银行实现更大的业务价值。比如使用 OceanBase 的 HTAP 等功能、承接部分轻量级 AP 业务。

五、写在最后

在当今这个 AI 大爆发、数据已经成为企业核心竞争力的时代,金融行业新一轮角逐已经展开。为了新一轮的变革,致力于成为一流城商行的中原银行一直在倡导“数据驱动的文化”,拥有高性能与高稳定性的 OceanBase 、及其丰富的周边工具正助力中原银行信息系统更好地服务业务目标,承担社会责任,助力中原银行的业务进一步高质量发展。


特别感谢林春对本期《DB 大咖说》的支持。林春老师是中国太平洋保险数智研究院首席数据库专家,有着丰富的金融核心系统数据库升级替换经验,也是DB 大咖说栏目的第二=三期嘉宾,可移步《中国太保:先难后易,核心系统的数据库升级实践 | OceanBase 《DB大咖说》(三)》进一步了解中国太保的数据库升级实践。

相关文章:

中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)

OceanBase《DB 大咖说》第 15 期,我们邀请到了中原银行金融科技部数据团队负责人,吕春雷。本文为本期大咖说的精选。 吕春雷是一位资历深厚的数据库专家,从传统制造企业、IT企业、甲骨文公司到中原银行,他在数据库技术与运维管理…...

自注意力机制的演进-从Transformer架构到DeepSeek-R1模型的深度语义理解革新

2025年,我国发布了开创性且高性价比的大语言模型-DeepSeek-R1,推动了AI领域的重大变革。本章节回顾了LLM的发展历程,其起点可追溯至2017年Transformer架构的提出,该架构通过自注意力机制(Self-Attention)彻底革新了自然语言处理技…...

数据结构拓展:详解realloc(C++)

前言 在C中,realloc 是C标准库提供的一个内存管理函数,用于动态调整已分配内存块的大小。尽管C更推荐使用 new/delete 或智能指针,但在某些场景(如与C代码交互或底层内存操作)中仍可能用到 realloc。以下是详细分析&a…...

计算机网络数据传输探秘:包裹如何在数字世界旅行?

计算机网络数据传输探秘:包裹如何在数字世界旅行? 一、从快递网络看数据传输本质 想象你网购了一件商品: 打包:商家用纸箱包装,贴上地址标签(数据封装)运输:包裹经过网点→分拣中心→运输车(网络节点与链路)签收:快递员核对信息后交付(数据校验与接收)数据的网络…...

十二、OSG学习笔记-Control

上一章节: 十一、OSG学习笔记-操作系统接口-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145891502 本章节代码: OsgStudy/Controls CuiQingCheng/OsgStudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/osg-study/tree/ma…...

DevOps全流程

DevOps全流程 面试速记 DevOps 是一种融合开与运维的软件研发实践方法,规划从需求调研到开发,测试,部署等全流程,通过Jenkins 和Kubernetes 等自动化工具集成部署实现从代码编写到部署的无缝衔接,加速软件交付周期。我…...

ARM Linux LCD上实时预览摄像头画面

文章目录 1、前言2、环境介绍3、步骤4、应用程序编写4.1、lcd初始化4.2、摄像头初始化4.3、jpeg解码4.4、开启摄像头4.5、完整的程序如下 5、测试5.1、编译应用程序5.2、运行应用程序 6、总结 1、前言 本次应用程序主要针对支持MJPEG格式输出的UVC摄像头。 2、环境介绍 rk35…...

NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句

本文基于Dify阿里通义千问大模型,实现自然语音自动生产SQL语句功能,话不多说直接上效果图 我们可以试着问他几个问题 查询每个部门的员工数量SELECT d.dept_name, COUNT(e.emp_no) AS employee_count FROM employees e JOIN dept_emp de ON e.emp_no d…...

centos8更换阿里云yum源

1.centos8更换为阿里云yum源 2.更换阿里云Yum-centos8源 mv /etc/yum.repos.d/CentOS-Stream-BaseOS.repo /etc/yum.repos.d/CentOS-Stream-BaseOS.repo.backupcurl -o /etc/yum.repos.d/CentOS-Stream-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-8.repowget -O /et…...

在命令的轨迹中:创建、删除与查看普通用户,Linux用户管理的风华与深邃

文章目录 引言一、创建普通用户二、测试是否创建成功三、查看普通用户四、更改密码五、赋予普通用户root权限六、删除普通用户小结 引言 在浩瀚如海的Linux系统中,每一位用户都是一颗独立的星辰,散发着属于自己的光芒。在这片数字的星空中,用…...

年后寒假总结及计划安排

年后寒假总结 年后主要学习了微服务,nacos (服务注册中心),feign(远程调用),网关,双token(相较于之前更加规范,更加符合企业级),配置管理 ,mybati…...

IvorySQL v4 逻辑复制槽同步功能解析:高可用场景下的数据连续性保障

功能简介 IvorySQL v4 基于 PostgreSQL 17,引入了逻辑复制槽同步至热备份数据库的功能。这一改进有效解决了旧版本中主数据库与备份数据库切换后逻辑复制中断的问题。对于那些追求数据高可用性和业务连续性的数据库来说,这无疑是一个重大的利好消息。它…...

GitLab常用操作

git init //初始化一个git的本地仓库git rm -r --cached //清除缓存,比如修改了.gitignore文件,可以先清缓存再进行下边的操作git add README.md //增加一个文件 //git add 文件夹/ //增加文件夹内的所有文件 //git add --all //增加当前项目…...

【运维笔记】docker 中 MySQL从5.7版本升级到8.0版本 - 平滑升级

在Docker环境中,将MySQL从5.7版本升级到8.0版本时,数据确实需要迁移。虽然不能直接通过docker-compose命令简单地进行版本升级并保留所有数据,但可以通过一系列步骤来实现平滑升级和数据迁移。以下是详细的迁移步骤: 一、准备阶段…...

NUMA架构介绍

NUMA 架构详解 NUMA(Non-Uniform Memory Access,非统一内存访问) 是一种多处理器系统的内存设计架构,旨在解决多处理器系统中内存访问延迟不一致的问题。与传统的 UMA(Uniform Memory Access,统一内存访问…...

三、0-1搭建springboot+vue3前后端分离-idea新建springboot项目

一、ideal新建项目1 ideal新建项目2 至此父项目就创建好了,下面创建多模块: 填好之后点击create 不删了,直接改包名,看自己喜欢 修改包名和启动类名: 打开ServiceApplication启动类,修改如下: …...

【哇! C++】类和对象(三) - 构造函数和析构函数

目录 一、构造函数 1.1 构造函数的引入 1.2 构造函数的定义和语法 1.2.1 无参构造函数: 1.2.2 带参构造函数 1.3 构造函数的特性 1.4 默认构造函数 二、析构函数 2.1 析构函数的概念 2.2 特性 如果一个类中什么成员都没有,简称为空类。 空类中…...

单片机项目复刻需要的准备工作

一、前言 复刻单片机的项目的时候,有些模块是需要焊接的。很多同学对焊接没有概念。 这里说一下做项目的基本工具。 比如:像这种模块,都需要自己焊接了排针才可以链接的。 二、基本模块 2.1 单排排针 一些模块买回来是没有焊接的&#x…...

Nginx负载均衡配置详解:轻松实现高可用与高性能

在现代Web应用中,负载均衡是确保系统高可用性和高性能的关键技术之一。Nginx作为一款高性能的HTTP服务器和反向代理服务器,其负载均衡功能被广泛应用于各种场景。本文将详细介绍如何使用Nginx实现负载均衡配置,帮助开发者轻松应对高并发和大流…...

SQLAlchemy系列教程:集成Pydantic增强数据处理能力

本教程介绍如何将Pydantic用于数据验证,SQLAlchemy用于数据库操作,从而通过强大的数据处理能力增强Python应用程序。 介绍 在现代web开发中,确保数据的有效性和完整性至关重要。Pydantic和SQLAlchemy是两个功能强大的Python库,可…...

Linux下AWK命令使用方法

文章目录 **一、AWK 基本语法****二、核心概念****1. 内置变量****2. 分隔符****3. BEGIN 和 END 块** **三、常见用法示例****1. 基础打印****2. 条件过滤****3. 计算与统计****4. 字符串操作****5. 处理 CSV 文件** **四、高级用法****1. 使用数组统计****2. 多条件分支&…...

【AI】如何理解与应对AI中的敏感话题:详细分析与实用指南

引言 随着人工智能(AI)技术的不断发展,我们在与AI交互时,可能会遇到敏感话题的讨论限制。在许多情况下,AI系统为了避免触及社会、政治或文化敏感点,会对用户输入进行一定的筛选和过滤。那么,这…...

基于开源库编写MQTT通讯

目录 1. MQTT是什么?2. 开发交互UI3. 服务器核心代码4. 客户端核心代码5. 消息订阅与发布6. 通讯测试7. MQTT与PLC通讯最后. 核心总结 1. MQTT是什么? MQTT(Message Queuing Terlemetry Transport)消息队列遥测协议;是…...

linux指令学习--sudo apt-get install vim

1. 命令分解 部分含义sudo以管理员权限运行命令(需要输入用户密码)。apt-getUbuntu 的包管理工具,用于安装、更新、卸载软件包。installapt-get 的子命令,表示安装软件包。vim要安装的软件包名称(Vim 文本编辑器&…...

PHP之变量

在你有别的编程语言的基础下,你想学习PHP,可能要了解的一些关于变量的信息。 PHP中的变量不用指定数据类型,同时必须用$开头。 全局变量 可以在除函数外任意地方访问,如果需要在函数中访问要先获取 $x 111; function tt() {gl…...

代码规范和简化标准

代码规范和简化标准是编写高质量、可维护、可扩展和可读代码的基本原则。遵循这些标准不仅能提高团队协作效率,还能减少出错的概率和后期维护的成本。以下是一些常见的代码规范和简化标准: 1. 命名规范 变量命名: 使用具有描述性的名称&…...

DeepSeek安全:AI网络安全评估与防护策略

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 本文基于现有的公开资料,从企业资深网络安全专家的视角,系统梳理DeepSeek技术在网络安全领域的潜在贡献与核心风险,并结合中国…...

开发环境搭建-05.后端环境搭建-前后端联调-通过断点调试熟悉项目代码特点

一.后端环境搭建-前后端联调 首先进行编译,编译通过才能够正常运行,我们可以看到已成功编译通过。 SkyApplication启动成功 登录成功 二.登录操作 1.controller层 package com.sky.controller.admin;import com.sky.constant.JwtClaimsConstant; impo…...

python py文件转为可执行文件(.exe)与 exe文件转py文件

一、py文件转为可执行文件(.exe) #安装 PyInstaller库 pip install pyinstaller #将 Python 脚本打包成一个单一的可执行文件。 pyinstaller --onefile .\123.py 文件或 pyinstaller -F .\123.py 文件 执行这个命令后,PyInstaller 会将123…...

【慕课网wiki项目学习笔记01】Spring Boot 项目搭建

2-2 新建SpringBoot项目 一、创建SpringBoot项目 (1)在SpringBoot官网创建 (2.1)在 IDEA 中创建 Group:公司名 Artifact:项目名 创建成功后开始下载Maven依赖(选择右下角的Import Changes&…...

解锁数据潜能,永洪科技以数据之力简化中粮可口可乐决策之路

企业数字化转型是指企业利用数字技术和信息通信技术来改变自身的商业模式、流程和增值服务,以提高企业的竞争力和创新能力。数字化转型已经成为企业发展的重要战略,尤其在当前信息技术高速发展的时代。数字化转型还涉及到企业与消费者之间的互动和沟通。…...

k-Shape:高效准确的聚类方法

引言 时间数据在许多学科中的扩散和无处不在,已经对时间序列的分析和挖掘产生了极大的兴趣。聚类是最流行的数据挖掘方法之一,不仅因为它的探索性,而且作为其他技术的预处理步骤或子程序。常用的有-means聚类算法。本文介绍了一种新的时间序…...

前端网络安全面试题及答案

前端计算机网络常见面试题目总结_笔描相思的博客_前端计算机网络面试 1.TCP、UDP的区别 ①TCP是有连接的,连接需要三次握手,断开连接需要四次挥手;UDP是无连接的 ②TCP是面向报文的,UDP是面向字节流的 ③TCP是可靠的&#xff…...

9. Flink的性能优化

1. Flink的资源和代码优化 1.1 slot资源配置 Flink中具体跑任务的进程叫TaskManager,TM进程又会根据配置划分出诺干个TaskSlot,它是具体运行SubTask的地方。slot是Flink用来隔离各个subtask的资源集合,这里的资源一把指内存,TCP…...

DeepSeek安装部署笔记(二)

Bat批处理文件的编写 第五步 启动openWebUI的批处理编写1、下面的代码,复制到文本文件,再改扩展名2、这样,在桌面直接双击此文件运行 第五步 启动openWebUI的批处理编写 1、下面的代码,复制到文本文件,再改扩展名 ec…...

【谷粒商城踩坑记】第二坑 renren-fast-vue的node-sass问题

第二坑 renren-fast-vue的node-sass问题 前端开始,第一关就是源码运行,直接报错以下内容: node-sass6.0.1 postinstall: node scripts/build.js 这个在老的前端项目中,特别是使用了sass的项目中经常会出现。 其实当时没有记录下具…...

【Linux-网络】HTTP的清风与HTTPS的密语

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚 引言 📚 一、HTTP 📖 1.概述 📖 2.URL &#x1f5…...

【SpringBoot】数据访问技术spring Data、 JDBC、MyBatis、JSR-303校验

Spring Boot 数据访问技术及特性 目录标题 Spring Boot 数据访问技术及特性摘要1. 引言2. Spring Data架构与原理2.1 Spring Data概述2.2 Spring Data核心组件2.3 Spring Boot与Spring Data的集成机制 3. Spring Boot与JDBC的整合3.1 JDBC整合流程3.2 数据源自动配置3.3 JdbcTe…...

直装永久授权,最新专业版集成VB7

无论是学生、教师还是职场工作人员,办公软件在日常工作和学习中都是不可或缺的重要工具。在众多办公软件中,微软的Microsoft Office和金山软件的WPS Office最常用的选择。对于许多使用要求不高的小伙伴而言,WPS Office因其易用性和免费版本的…...

Ollama 框架本地部署教程:开源定制,为AI 项目打造专属解决方案!

Ollama 是一款开源的本地大语言模型(LLM)运行框架,用于管理和运行语言模型。具有以下核心特点: 开源可定制:采用 MIT 开源协议,开发者能自由使用、阅读源码并定制,可根据自身需求进行功能扩展和…...

【单片机项目】电源如何扩展、电源模块、电池模块如何接线

一、前言 解决2个关键问题: 【1】如果项目编号小于172之前的项目。 可能会遇到电源模块不够接,需要扩展电源的问题。 【2】如果项目编号是大于 172之后项目,部分项目用到了稳压电源模块或者是电池模块。 这篇文章单独讲解一下如何接线。 …...

汽车智能钥匙中PKE低频天线的作用

PKE(Passive Keyless Entry)即被动式无钥匙进入系统,汽车智能钥匙中PKE低频天线在现代汽车的智能功能和安全保障方面发挥着关键作用,以下是其具体作用: 信号交互与身份认证 低频信号接收:当车主靠近车辆时…...

mongodb安装教程以及mongodb的使用

MongoDB是由C语言编写的一种面向文档的NoSQL数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。与传统的关系型数据库(如 MySQL 或 PostgreSQL)不同,MongoDB 存储数据的方式是以 BSON(类似于 JSON 的二进制格式…...

SpringMVC学习(controller层加载控制与(业务、功能)bean加载控制、Web容器初始化配置类)(3)

目录 一、SpringMVC、Spring的bean加载控制。 &#xff08;1&#xff09;实际开发的包结构层次。 &#xff08;2&#xff09;如何"精准"控制两个容器分别加载各自bean。(分析) <1>SpringMVC相关bean加载控制。(方法) <2>Spring相关bean加载控制。(方法) …...

redis基础结构

title: redis基础结构 date: 2025-03-04 08:39:12 tags: redis categories: redis笔记 Redis入门 &#xff08;NoSQL, Not Only SQL&#xff09; 非关系型数据库 关系型数据库&#xff1a;以 表格 的形式存在&#xff0c;以 行和列 的形式存取数据&#xff0c;一系列的行和列被…...

树莓派学习(一)——3B+环境配置与多用户管理及编程实践

树莓派学习&#xff08;一&#xff09;——3B环境配置与多用户管理及编程实践 一、实验目的 掌握树莓派3B无显示器安装与配置方法。学习Linux系统下多用户账号的创建与管理。熟悉在树莓派上使用C语言和Python3编写简单程序的方法。 二、实验环境 硬件设备&#xff1a;树莓派…...

【音视频】ffplay播放控制

一、ffplay播放控制 1.1、ffplay打开视频 比如我当前目录下现在有一个1.mp4的视频&#xff0c;可以使用下面的命令用ffplay打开并播放它 ffplay 1.mp4输入后回车即可打开相应的视频 1.2 ffplay播放控制 使用q、ESC退出播放按f、双击切换全屏状态按m切换为静音按9减少音量&a…...

【智能体Agent】ReAct智能体的实现思路和关键技术

基于ReAct&#xff08;Reasoning Acting&#xff09;框架的自主智能体 import re from typing import List, Tuplefrom langchain_community.chat_message_histories.in_memory import ChatMessageHistory from langchain_core.language_models.chat_models import BaseChatM…...

Redis系列之慢查询分析与调优

Redis 慢查询分析与优化&#xff1a;提升性能的实战指南 Redis 作为一款高性能的内存数据库&#xff0c;因其快速的数据读写能力和灵活的数据结构&#xff0c;被广泛应用于缓存、消息队列、排行榜等多种业务场景。然而&#xff0c;随着业务规模的扩大和数据量的增加&#xff0…...

分布式锁—2.Redisson的可重入锁一

大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...