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

【系列专栏】银行IT的云原生架构-存储架构-数据库部署 10

银行 IT 的云原生架构:存储架构(数据库部署)

一、引言

在银行 IT 云原生架构的构建中,存储架构作为关键支撑,其性能、可靠性和扩展性直接影响着银行各类业务系统的运行效率与数据安全。而数据库作为数据存储与管理的核心组件,其在云原生存储架构下的合理部署至关重要。数据库部署方式不仅决定了数据的存储方式、访问速度,还与银行的业务连续性、数据一致性以及成本控制紧密相关。深入探讨银行 IT 云原生架构中的存储架构与数据库部署,对银行充分发挥云原生优势、提升核心竞争力具有重要意义。

二、银行云原生存储架构特点

(一)分布式存储为主流

  1. 高扩展性:银行面临着海量数据的存储需求,且数据量随业务发展持续增长。分布式存储系统,如 Ceph、GlusterFS 等,通过将数据分散存储在多个存储节点上,能够轻松实现存储容量的线性扩展。当银行需要增加存储容量时,只需添加新的存储节点,系统即可自动识别并将数据分布到新节点上,无需停机进行大规模存储设备更换或扩容操作。例如,随着某银行客户数量的不断增加,其客户信息、交易记录等数据量急剧增长,通过分布式存储系统,在不影响业务正常运行的情况下,顺利实现了存储容量的多次扩展,满足了数据增长需求。
  2. 高容错性:分布式存储采用数据冗余技术,如多副本存储和纠删码技术。多副本存储将数据复制多份存储在不同节点上,当某个节点出现故障时,可从其他副本节点获取数据,确保数据的可用性。纠删码技术则通过对数据进行编码,将数据分散存储在多个节点上,即使部分节点故障,也能通过剩余节点的数据恢复出原始数据。例如,在某银行的分布式存储系统中,采用三副本存储策略,当一个存储节点因硬件故障无法访问时,业务系统仍能从其他两个副本节点获取数据,保证了业务的连续性。

(二)分层存储优化资源利用

  1. 性能分层:根据数据访问频率和性能要求,银行将存储资源分为不同层次。高速存储层,如全闪存阵列,用于存储对读写性能要求极高的核心业务数据,如实时交易数据、在线支付数据等,确保业务系统能够快速响应客户请求。中速存储层,如传统机械硬盘与固态硬盘混合的存储设备,用于存储访问频率相对较低但仍需一定性能保障的数据,如近期的业务报表数据。低速存储层,如磁带库等,用于存储历史归档数据,这些数据访问频率极低,但需要长期保存。通过这种性能分层存储方式,银行能够在满足不同业务数据性能需求的同时,优化存储资源的成本投入。
  2. 数据生命周期管理:结合数据生命周期特点,银行对存储资源进行动态管理。对于新产生的数据,通常先存储在高速存储层,随着数据使用频率降低,逐步迁移到中速或低速存储层。例如,银行的交易数据在交易发生后的一段时间内,需要频繁查询和处理,存储在全闪存阵列中;交易完成一段时间后,数据访问频率降低,可迁移至混合存储设备;若干年后,这些数据仅作为历史记录留存,可迁移至磁带库进行长期归档存储。这种基于数据生命周期的存储管理方式,提高了存储资源的整体利用率。

三、银行云原生架构下数据库部署方式

(一)容器化数据库部署

  1. 灵活部署与快速迭代:利用容器技术,如 Docker,将数据库及其依赖环境封装在一个独立的容器中。这种方式使得数据库的部署变得极为灵活,可在不同的云环境、不同的服务器上快速启动和运行。开发团队可以根据业务需求,快速创建多个数据库容器实例,用于开发、测试和预生产环境。同时,当数据库需要进行版本升级或功能更新时,只需更新容器镜像,即可快速部署新的数据库版本,实现快速迭代。例如,某银行在开发一款新的移动金融应用时,开发团队利用容器化数据库部署方式,在短时间内创建了多个数据库实例,分别用于不同功能模块的开发与测试,大大加快了应用的开发进度。
  2. 资源隔离与弹性伸缩:容器为数据库提供了良好的资源隔离环境,每个数据库容器都有独立的 CPU、内存和网络资源,相互之间不会产生干扰。在业务高峰期,银行可以根据业务负载情况,通过容器编排工具,如 Kubernetes,自动增加数据库容器实例数量,实现数据库的弹性伸缩,以满足高并发的数据访问需求。业务低谷期,则可减少容器实例数量,释放资源,降低成本。例如,在电商促销活动期间,银行在线支付业务量剧增,通过 Kubernetes 自动扩展数据库容器数量,确保了支付系统的稳定运行,活动结束后又自动缩减容器规模,节约了资源。

(二)分布式数据库部署

  1. 数据分片与负载均衡:分布式数据库将数据按照一定规则进行分片,存储在多个数据库节点上。例如,按照客户 ID 的哈希值将客户数据分散存储在不同节点上,每个节点负责处理一部分数据的读写请求。这种数据分片方式实现了负载均衡,避免了单个数据库节点因数据量过大或访问压力过高而出现性能瓶颈。同时,当某个节点出现故障时,系统可自动将请求路由到其他正常节点,保证业务的连续性。例如,某大型银行的客户信息数据库采用分布式部署,将全国范围内的客户数据分片存储在多个数据中心的数据库节点上,有效提高了数据访问效率和系统的可靠性。
  2. 分布式事务处理:在银行的业务场景中,经常涉及跨多个数据库节点的分布式事务,如跨行转账、复杂金融交易等。分布式数据库通过采用分布式事务处理协议,如两阶段提交(2PC)、三阶段提交(3PC)等,确保在分布式环境下事务的原子性、一致性、隔离性和持久性(ACID)特性。例如,在跨行转账业务中,分布式数据库能够协调转出银行和转入银行的数据库节点,确保转账操作要么全部成功提交,要么全部回滚,保证了资金的安全和数据的一致性。

四、银行云原生架构下数据库部署面临的挑战

(一)数据一致性保障难题

  1. 分布式环境下的数据同步延迟:在分布式数据库部署中,由于数据存储在多个节点上,节点之间的数据同步存在一定延迟。尤其是在网络状况不佳或数据量巨大的情况下,同步延迟可能会导致数据不一致问题。例如,在银行的异地灾备中心与主数据中心之间,数据同步可能因为网络带宽限制或链路故障而出现延迟,当主数据中心发生故障切换到灾备中心时,灾备中心的数据可能不是最新状态,从而影响业务的正常运行。
  2. 并发访问控制复杂性:随着银行数字化业务的发展,数据库面临着高并发的读写访问。在容器化和分布式数据库环境下,并发访问控制变得更加复杂。多个容器实例或数据库节点同时对同一数据进行读写操作时,若并发控制不当,可能会出现数据冲突、脏读、幻读等问题,破坏数据的一致性。例如,在银行的在线理财产品抢购场景中,大量用户同时进行购买操作,若数据库的并发访问控制机制不完善,可能导致部分用户购买到不存在的理财产品份额,引发业务纠纷。

(二)数据库性能优化挑战

  1. 容器化环境下的性能损耗:虽然容器化数据库部署带来了诸多优势,但在容器化环境中,数据库可能会面临一定的性能损耗。容器的隔离机制和资源共享方式可能会影响数据库对底层硬件资源的直接访问效率,导致 CPU、内存和 I/O 性能下降。例如,当多个数据库容器共享宿主机的 CPU 资源时,若资源分配不合理,可能会导致部分数据库容器的 CPU 使用率过高,影响数据库的响应速度。
  2. 分布式数据库的查询优化难度:分布式数据库的查询涉及多个节点的数据检索和整合,查询优化难度较大。由于数据分布在不同节点上,查询执行计划的制定需要考虑网络延迟、节点负载等多种因素。同时,不同节点上的数据格式和存储结构可能存在差异,进一步增加了查询优化的复杂性。例如,在银行进行跨区域客户数据分析时,需要从多个分布式数据库节点获取数据并进行关联查询,如何制定高效的查询执行计划,以减少查询时间和网络开销,是数据库性能优化面临的重要挑战。

(三)数据库安全风险增加

  1. 容器安全漏洞:容器化数据库部署中,容器镜像可能存在安全漏洞。若在构建或拉取容器镜像时未进行严格的安全扫描和验证,恶意软件或漏洞可能被带入数据库运行环境。一旦容器被攻击,攻击者可能获取数据库的敏感信息或篡改数据,对银行的业务安全造成严重威胁。例如,2023 年某知名云服务提供商的容器环境中,因容器镜像存在安全漏洞,导致大量用户数据泄露,其中包括部分银行客户的敏感信息。
  2. 分布式数据库的网络安全:分布式数据库通过网络连接多个节点,网络边界模糊,增加了网络安全风险。恶意攻击者可能通过网络攻击数据库节点,窃取数据或破坏数据库的正常运行。同时,分布式数据库中的数据传输过程也容易受到网络监听和劫持,导致数据泄露。例如,在银行的分布式数据库系统中,若网络传输加密机制不完善,攻击者可能截获并篡改数据库节点之间传输的数据,影响业务的准确性和安全性。

五、银行云原生架构下数据库部署优化策略

(一)强化数据一致性保障

  1. 优化数据同步机制:采用高效的数据同步算法和技术,如基于日志的异步复制、增量同步等,减少数据同步延迟。同时,建立数据同步监控机制,实时监测数据同步状态,及时发现并解决同步异常问题。例如,银行可以利用数据库自带的日志复制功能,将主数据库的事务日志实时同步到从数据库,确保从数据库的数据与主数据库保持一致。同时,通过监控工具实时监测同步延迟时间,当延迟超过阈值时,及时报警并进行故障排查。
  2. 完善并发访问控制:引入先进的并发访问控制技术,如乐观锁、悲观锁、多版本并发控制(MVCC)等,根据不同业务场景选择合适的并发控制策略。在高并发读写场景下,采用 MVCC 技术可以有效减少锁冲突,提高并发性能。同时,对数据库操作进行合理的事务划分,确保在一个事务内的数据操作保持原子性和一致性。例如,在银行的在线支付业务中,对支付操作进行事务封装,在事务开始时获取相关数据的锁,确保在支付过程中数据不会被其他并发操作修改,支付完成后释放锁,保证了支付业务的数据一致性。

(二)提升数据库性能

  1. 优化容器化数据库资源配置:根据数据库的业务负载和性能需求,合理配置容器的资源限制,如 CPU、内存、磁盘 I/O 等。通过对容器资源的精细化管理,提高数据库在容器化环境下的性能。例如,对于核心业务数据库容器,适当增加 CPU 和内存资源配额,确保其在高负载情况下仍能保持良好的性能。同时,优化容器与宿主机之间的资源映射关系,减少资源访问的开销。
  2. 加强分布式数据库查询优化:利用分布式查询优化器,对分布式数据库的查询进行优化。查询优化器可以根据数据分布情况、节点负载和网络状况等因素,生成最优的查询执行计划。同时,建立分布式数据库索引,提高数据检索效率。例如,在银行的分布式客户信息数据库中,根据常用查询条件建立索引,查询时通过索引快速定位数据所在节点,减少数据扫描范围,提高查询性能。

(三)增强数据库安全防护

  1. 加强容器安全管理:在容器镜像构建过程中,遵循安全最佳实践,使用官方认证的基础镜像,并定期更新镜像。引入镜像安全扫描工具,如 Trivy、Clair 等,在镜像构建完成后及拉取到生产环境前,对镜像进行全面的安全漏洞扫描。一旦发现安全漏洞,及时进行修复或更换镜像版本。同时,加强容器运行时的安全防护,采用容器安全监控工具,如 Falco,实时监测容器的运行状态,对异常行为进行及时报警和处理。
  2. 强化分布式数据库网络安全:在分布式数据库系统中,采用加密传输协议,如 SSL/TLS,对数据库节点之间的数据传输进行加密,防止数据被窃取或篡改。部署网络安全设备,如防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)等,对网络流量进行实时监测和过滤,防范网络攻击。同时,加强对数据库节点的访问控制,只允许授权的 IP 地址和用户访问数据库,降低安全风险。例如,在银行的分布式数据库系统中,所有节点之间的数据传输均通过 SSL/TLS 加密,防火墙和 IDS 实时监测网络流量,对异常流量进行拦截和报警,确保数据库的网络安全。

六、结论

银行 IT 云原生架构中的存储架构与数据库部署在当前已呈现出分布式、分层存储以及容器化、分布式数据库部署等特点,这些特点为银行提升数据存储与管理能力带来了诸多优势。然而,在部署过程中也面临着数据一致性保障、性能优化和安全风险增加等挑战。通过强化数据一致性保障机制、提升数据库性能以及增强数据库安全防护等优化策略,银行能够有效应对这些挑战,实现数据库在云原生架构下的高效、稳定和安全运行,为银行业务的持续创新和发展提供坚实的数据支撑。随着云原生技术的不断发展和银行数字化转型的深入推进,银行需持续关注存储架构与数据库部署领域的新技术、新方法,不断优化部署策略,以适应日益复杂的业务需求和技术环境。

相关文章:

【系列专栏】银行IT的云原生架构-存储架构-数据库部署 10

银行 IT 的云原生架构:存储架构(数据库部署) 一、引言 在银行 IT 云原生架构的构建中,存储架构作为关键支撑,其性能、可靠性和扩展性直接影响着银行各类业务系统的运行效率与数据安全。而数据库作为数据存储与管理的…...

OpenGL ES -> 投影变换矩阵完美解决绘制GLSurfaceView绘制图形拉伸问题

GLSurfaceView绘制图形拉伸问题 假如在XML文件中声明GLSurfaceView的宽高为 android:layout_width"match_parent"android:layout_height"match_parent GLSurfaceView绘制的图形在Open GL ES坐标系中,而Open GL ES坐标系会根据GLSurfaceView的宽高将…...

【Three.js】JS 3D library(一个月进化史)

#春节过完了,该继续投入学习了~ 作为一个平面开发者,想要增进更多的技能,掌握web3D开发# 前置知识与技能 1. JavaScript 基础 - 掌握ES6语法(类、模块、箭头函数、解构等) - 熟悉异步编程(Promise、…...

在 debian 12 上安装 mysqlclient 报错

报错如下 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting mysqlclientUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/61/68/810093cb579daae426794bbd9d88aa830fae296e85172d18cb0f0e5dd4bc/mysqlclient-2.2.7.tar.gz (91 kB)Installi…...

wordpress主题插件开发中高频使用的38个函数

核心模板函数 get_header()/get_footer()/get_sidebar() – 加载模板部件 the_title()/the_content()/the_excerpt() – 显示文章标题、内容、摘要 the_post() – 循环中获取文章数据 bloginfo(‘url’) – 获取站点URL wp_head()/wp_footer() – 输出头部/尾部代码 wp_n…...

BMS项目-面试及答疑整理

1. SOC计算用的什么原理实现的? bms目前计算SOC使用的安时积分+开路电压首先得对电池有一个抽象得概念,把电池比作游泳池,电量比作游泳池里面的水,电流比作流入和流出得水流,那么充电也就是往游泳池里面灌入水流安时积分:对水流进行一个实时监测,比如1S一次监测,那么每…...

js第十二题

题十二:轮播图 要求: 1.鼠标不在图片上方时,进行自动轮播,并且左右箭头不会显示;当鼠标放在图片上方时,停止轮播,并且左右箭头会显示; 2.图片切换之后,图片中下方的小…...

LeetCode-76.最小覆盖子串

1、题目描述: 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须…...

CAS单点登录(第7版)20.用户界面

如有疑问,请看视频:CAS单点登录(第7版) 用户界面 概述 概述 对 CAS 用户界面 (UI) 进行品牌化涉及编辑 CSS 样式表以及一小部分相对简单的 HTML 包含文件,也称为视图。(可选&…...

【强化学习的数学原理】第08课-值函数近似-笔记

学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰 文章目录 一、例子:曲线拟合二、原理-目标函数介绍三、原理-优化算法和函数选择四、原理-示例与分析五、Sarsa和Q-learning六、…...

基于css实现正六边形的三种方案

方案一:通过旋转三个长方形生成正六边形 分析: 如下图所示,我们可以通过旋转三个长方形来得到一个正六边形。疑问: 1. 长方形的宽高分别是多少? 设正六边形的边长是100,基于一些数学常识,可以…...

React VS Vue

React 和 Vue 是目前最流行的两个前端框架,它们在设计理念、生态系统和开发体验上各有特点。以下是对 React 和 Vue 的全方位对比: 1. 核心设计理念 React 库而非框架:React 是一个用于构建 UI 的库,专注于视图层,其…...

CMake 编译工具

在使用 CMake 时,你可以通过指定工具链文件来设置编译器(如 GCC、G 或 Clang)。以下是具体步骤: 1. 创建工具链文件 首先,创建一个工具链文件(例如 toolchain.cmake),并在其中指定…...

el-tree选中数据重组成树

vueelement-ui 实现el-tree选择重新生成一个已选中的值组成新的数据树&#xff0c;效果如下 <template><div class"flex"><el-tree class"tree-row" :data"list" ref"tree" :props"{children: children, label: …...

IO、NIO解读和不同点,以及常用的文件流操作方法

java高级——IO、NIO解读和不同点&#xff0c;以及常用的文件流操作方法 前情提要文章介绍1. 什么是IO1.1 节点的分类1.2 传输方式 2. 七大传输方式解读2.1 File类解读2.1.1 创建文件的三种方式2.2.2 File的常用方法2.2.3 如何正确认识FileUtils 2.2 字节流&#xff08;核心&am…...

51单片机-按键

1、独立按键 1.1、按键介绍 轻触开关是一种电子开关&#xff0c;使用时&#xff0c;轻轻按开关按钮就可使开关接通&#xff0c;当松开手时&#xff0c;开关断开。 1.2、独立按键原理 按键在闭合和断开时&#xff0c;触点会存在抖动现象。P2\P3\P1都是准双向IO口&#xff0c;…...

Spring Boot Actuator 监控✨

Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具&#xff0c;它可以帮助你深入了解和监控你的应用程序的运行状态。通过 Actuator&#xff0c;你可以获取应用程序的健康状况、内存使用情况、线程信息、HTTP 请求跟踪等。&#x1f680; 核心知识点 &#…...

SpringBoot论坛网站 – 功能详解与部署教程

项目概述 《SpringBoot的论坛网站》是一个基于SpringBoot框架开发的现代化论坛平台&#xff0c;旨在为用户提供一个便捷的交流空间。该项目不仅功能丰富&#xff0c;还具备良好的扩展性和易用性&#xff0c;适合用于学习、分享和讨论各类话题。以下是项目的核心功能模块和部署…...

俄罗斯方块游戏完整代码示例

以下是一个基于Cocos Creator引擎开发的俄罗斯方块游戏的完整代码示例。该游戏实现了俄罗斯方块的基本功能&#xff0c;并且代码整合在单个文件中&#xff0c;无需任何外部依赖&#xff0c;可以直接在浏览器中运行。 1. 创建Cocos Creator项目 首先&#xff0c;确保你已经安装了…...

【设计模式】【结构型模式】组合模式(Composite)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…...

【设计模式】03-理解常见设计模式-行为型模式(专栏完结)

前言 前面我们介绍完创建型模式和创建型模式&#xff0c;这篇介绍最后的行为型模式&#xff0c;也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配&#xff0c;以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…...

Qt 6.8版本 自制windows下运行软件<一>——串口调试助手

自制串口调试助手 哔哩哔哩效果展示 一、 说明 本人在读学生&#xff0c;跟随哔哩哔哩网站北京迅为公司的教学视频&#xff0c;进行学习qt&#xff0c;由于视频中的实现过程是利用ui界面的实现&#xff0c;本人在学习过程中&#xff0c;通过完全敲代码的形式&#xff0c;实现同…...

Qt——静态函数中发送信号方法总结(不需要通过类内部信号与槽实现,关键是清楚你发送的信号源自哪个对象)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》...

深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析

修改内容时间2.4.1处理请求的流程&#xff0c;引用更好的流程图2025.02.11首发2025.02.08 深入解析 vLLM&#xff1a;高性能 LLM 服务框架的架构之美&#xff08;一&#xff09;原理与解析 深入解析 vLLM&#xff1a;高性能 LLM 服务框架的架构之美&#xff08;二&#xff09;…...

关于视频去水印的一点尝试

一. 视频去水印的几种方法 1. 使用ffmpeg delogo滤镜 delogo 滤镜的原理是通过插值算法&#xff0c;用水印周围的像素填充水印的位置。 示例&#xff1a; ffmpeg -i input.mp4 -filter_complex "[0:v]delogox420:y920:w1070:h60" output.mp4 该命令表示通过滤镜…...

前端常见面试题-2025

vue4.0 Vue.js 4.0 是在 2021 年 9 月发布。Vue.js 4.0 是 Vue.js 的一个重要版本&#xff0c;引入了许多新特性和改进&#xff0c;旨在提升开发者的体验和性能。以下是一些关键的更新和新特性&#xff1a; Composition API 重构&#xff1a;Vue 3 引入了 Composition API 作为…...

JavaEE-SpringBoot快速入门

文章目录 本节目标Maven什么是Maven创建一个Maven项目maven项目功能maven的依赖管理全球仓库, 私服, 本地服务器, 配置国内镜像 第一个SpringBoot项目创建项目运行SpringBoot程序 SpringBoot原理初步Web服务器 总结 本节目标 了解什么是maven, 配置国内源使用Springboot创建项…...

盛铂科技 SMF106 低相位噪声贴片式频率综合器模块

在现代通信和电子设备领域&#xff0c;频率综合器作为关键组件&#xff0c;其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器&#xff0c;以其卓越的性能和独特设计&#xff0c;成为众多高性能系统的选择。 一、频率覆盖范围广&#xff0c;步进…...

前端【技术方案】重构项目

1. 明确重构目标 优化性能 减少页面加载时间降低资源占用 提升代码可维护性 更规范的代码风格更清晰的代码结构更明确的模块设计 扩展功能 为项目添加新功能改进现有功能 2. 评估项目现状 审查代码 全面检查现有代码&#xff0c;找出代码中的问题&#xff0c;如代码冗余、耦合…...

第十六天 HarmonyOS WebView开发实战:从加载网页到与JavaScript交互

HarmonyOS WebView开发实战&#xff1a;从加载网页到与JavaScript交互 一、WebView基础与HarmonyOS特性解析 在移动应用开发中&#xff0c;WebView作为内嵌浏览器组件&#xff0c;在HarmonyOS&#xff08;鸿蒙系统&#xff09;中扮演着重要角色。它不仅能够加载本地和远程网页…...

Unity学习part2

为bilibili教程【【Unity教程】零基础带你从小白到超神】 https://www.bilibili.com/video/BV1gQ4y1e7SS/?p50&share_sourcecopy_web&vd_source6e7a3cbb802eb986578ad26fae1eeaab的笔记 1、灯光的使用 定向光模拟太阳&#xff0c;是平行光。旋转定向光&#xff0c;光…...

贪吃蛇游戏

贪吃蛇 一、html <div class"container" id"app"></div><script src"./js/index.js"></script>二、css * {margin: 0;top: 0;} .set {margin: 15px auto;width: 600px; } .container {width: 600px;height: 600px;bac…...

docker修改镜像默认存储路径(基于 WSL2 的迁移方法)

打开powershell窗口 任意地方shift右键 1、停止 WSL wsl --shutdown2、导出数据 wsl --export docker-desktop-data E:\docker\DockerDesktopdata\docker-desktop-data.tar wsl --export docker-desktop E:\docker\DockerDesktop\docker-desktop.tar3、取消注册 wsl --un…...

C#+SqlSugar实现主从库读写分离

在使用 **SqlSugar** 进行分库操作时&#xff0c;可以通过配置多个数据库连接&#xff0c;并根据业务逻辑动态切换数据库。以下是一个完整的分库示例&#xff0c;展示如何实现分库功能。 --- ### **1. 安装 NuGet 包** 安装 SqlSugarCore&#xff1a; bash dotnet add packag…...

从无序到有序:上北智信通过深度数据分析改善会议室资源配置

当前企业普遍面临会议室资源管理难题&#xff0c;预约机制不完善和临时会议多导致资源调度不合理&#xff0c;既有空置又有过度拥挤现象。 针对上述问题&#xff0c;上北智信采用了专业数据分析手段&#xff0c;巧妙融合楼层平面图、环形图、折线图和柱形图等多种可视化工具&a…...

以太网详解(八)传输层协议:TCP/UDP 协议

文章目录 传输层协议概述为什么需要传输层&#xff1f;传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…...

CentOS 8 配置bond

CentOS 8 网络配置的详细步骤和对应的配置文件内容。 1. 配置聚合网卡(Bonding) 配置intranet聚合网卡 在/etc/sysconfig/network-scripts/目录下创建ifcfg-intranet文件,内容如下: TYPE=Bond NAME=intranet DEVICE=intranet ONBOOT=yes BOOTPROTO=none IPADDR=10.2.1.22…...

C语言基础16:二维数组、字符数组

二维数组 定义 二维数组本质上是一个行列式的组合&#xff0c;也就是说二维数组由行和列两部分组成。属于多维数组&#xff0c;二维数组数据是通过行列进行解读。 二维数组可被视为一个特殊的一维数组&#xff0c;相当于二维数组又是一个一维数组&#xff0c;只不过它的元素…...

Java 同步锁性能的最佳实践:从理论到实践的完整指南

目录 一、同步锁性能分析 &#xff08;一&#xff09;性能验证说明 1. 使用同步锁的代码示例 2. 不使用同步锁的代码示例 3. 结果与讨论 &#xff08;二&#xff09;案例初步优化分析说明 1. 使用AtomicInteger原子类尝试优化分析 2. 对AtomicInteger原子类进一步优化 …...

思科、华为、H3C常用命令对照表

取消/关闭 思科no华为undo华三undo 查看 思科show华为display华三display 退出 思科exit华为quit华三quit 设备命名 思科hostname华为sysname华三sysname 进入全局模式 思科enable、config terminal华为system-view华三system-view 删除文件 思科delete华为delete华…...

[qt5学习笔记]Application Example示例程序源码解析

开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图&#xff0c; 设置designer独立运行。估计是嵌入运行存在些许bug。 同理&#xff0c;ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常&#xff0c;但分离式更稳定可靠。 qt creator编译失败 原…...

华为交换机堆叠技术简介配置

目录 一、华为堆叠技术简介&#xff08;一&#xff09;提高可靠性&#xff08;二&#xff09;扩展端口数量&#xff08;三&#xff09;增大带宽&#xff08;四&#xff09;简化组网&#xff08;五&#xff09;长距离堆叠 二、华为交换机堆叠技术的案例及命令配置&#xff08;一…...

腿足机器人之四- 卡尔曼滤波

腿足机器人之四卡尔曼滤波 概率学基础贝叶斯准则熵 卡尔曼滤波扩展卡尔曼滤波信息滤波器 在机器人&#xff08;四足、人形&#xff09;领域&#xff0c;感知和行动的不确定性可能由多种因素引起&#xff0c;如传感器噪声、外部环境的变化、非精确控制以及实时性算力限制等。 和…...

nginx 部署前端vue项目

&#x1f468;‍⚕ 主页&#xff1a; gis分享者 &#x1f468;‍⚕ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕ 收录于专栏&#xff1a;前端工程师 文章目录 一、&#x1f353;什么是nginx&#xff1f;二、&#x1f353;nginx 部署…...

【第1章:深度学习概览——1.6 深度学习框架简介与选择建议】

嘿,各位老铁们,今天咱们来一场深度学习框架的深度探索之旅。在这个充满无限可能的深度学习时代,深度学习框架就像是连接理论与实践的桥梁,帮助我们从算法设计走向实际应用。随着技术的飞速发展,深度学习框架的选择变得越来越多样化,每一种框架都有其独特的优势和适用场景…...

NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略

作者&#xff1a;来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型&#xff0c;以及其与 LLM&#xff08;Large Language Model&#xff09;的异同和协同关系。接着…...

C#的委托delegate与事件event

在C#中&#xff0c;delegate&#xff08;委托&#xff09;和 event&#xff08;事件&#xff09;是两个非常重要的概念&#xff0c;它们主要用于实现回调机制和事件驱动编程。下面详细介绍它们的原理和使用场景。 1. Delegate&#xff08;委托&#xff09; 1.1 委托的原理 委托…...

Spring Boot 集成MyBatis-Plus

文章目录 一、背景说明二、集成过程 2.1 引入 maven 依赖2.2 增加属性配置2.3 自动配置类 三、验证集成 3.1 控制器3.2 服务类3.3 Mapper接口类3.4 实体类3.4 不要忘记XML文件3.5 发起请求 四、技巧拓展 4.1 如何打印sql语句&#xff1f;4.2 如何对参数增加非空验证&#xff1f…...

javacv将视频切分为m3u8视频并播放

学习链接 ffmpeg-demo 当前对应的 gitee代码 Spring boot视频播放(解决MP4大文件无法播放)&#xff0c;整合ffmpeg,用m3u8切片播放。 springboot 通过javaCV 实现mp4转m3u8 上传oss 如何保护会员或付费视频&#xff1f;优酷是怎么做的&#xff1f; - HLS 流媒体加密 ffmpe…...

Docker 入门与实战:从安装到容器管理的完整指南

&#x1f680; Docker 入门与实战&#xff1a;从安装到容器管理的完整指南 &#x1f31f; &#x1f4d6; 简介 在现代软件开发中&#xff0c;容器化技术已经成为不可或缺的一部分。而 Docker 作为容器化领域的领头羊&#xff0c;以其轻量级、高效和跨平台的特性&#xff0c;深…...