数据库blog5_数据库软件架构介绍(以Mysql为例)
🌿软件的架构
🍂分类
软件架构总结为两种主要类型:一体式架构和分布式架构
● 一体化架构
一体式架构是一种将所有功能集成到一个单一的、不可分割的应用程序中的架构模式。这种架构通常是一个大型的、复杂的单一应用程序,包含所有功能模块。
特点
简单:部署简单,不需要复杂的分布式系统管理。
性能优化:由于所有组件都在同一个进程中运行,通信效率高。
可维护性差:代码库庞大,难以维护和扩展。
扩展性差:难以水平扩展,通常需要垂直扩展(增加硬件资源)。
● 分布式架构
分布式架构是一种将应用程序分解为多个独立的组件或服务,并将这些组件或服务部署在不同的服务器或节点上的架构模式。分布式架构可以进一步细分为多种具体模式,如C/S架构、B/S架构、微服务架构等。
特点
高可维护性:各组件可以独立开发和测试,便于维护。
高可扩展性:可以通过增加服务器数量或优化服务器性能来扩展。
灵活性:可以使用不同的技术栈开发不同的组件。
复杂性:部署和管理相对复杂,需要处理网络通信、数据一致性等问题。
○ 分布式架构————C/S端架构
客户端(Client)是指与服务器端(Server)进行交互的软件或应用程序。客户端可以是专门为服务器端设计的,也可以是通用的软件,具体取决于应用场景和需求。
专用客户端
:这些客户端是专门为某个特定的服务器端应用程序设计的,通常具有丰富的功能和优化,以提供最佳的用户体验。)例如,数据库管理工具(如MySQL Workbench)、企业级的ERP客户端等。)通用客户端
:这些客户端是通用的软件,可以通过连接器或中间件与多种服务器端应用程序进行交互。(例如,Web浏览器、通用的API客户端工具(如Postman)等。)C(客户端)/S(服务器端)架构,S端是核心,C端负责交互和请求发起,以及展示服务器端的返回结果
- C端
`定义:`客户端是用户与系统交互的界面,负责接收用户输入、显示结果,并向服务器端发送请求。 `功能:`用户界面:提供用户交互界面,如图形用户界面(GUI)或命令行界面(CLI)。请求生成:根据用户输入生成请求,并将其发送到服务器端。结果展示:接收服务器端返回的结果,并将其展示给用户。本地处理:在某些情况下,客户端可能 会进行一些本地处理,如数据缓存、输入验证等。
- S端
`定义:`服务器端是系统的后端,负责处理客户端的请求,并返回结果。 `功能:`请求处理:接收客户端的请求,解析请求内容,并进行相应的处理。数据管理:管理数据存储、查询、更新等操作。业务逻辑:实现系统的业务逻辑,如数据验证、事务处理等。资源管理:管理系统的资源,如内存、磁盘、网络等。
从广义上来说,B/S(浏览器/服务器)架构和P2P(对等网络)架构都可以看作是C/S(客户端/服务器)架构的变体。
○ 客户端与服务器端的两种架构
本地C端 + 本地S端
在这种架构中,客户端和服务器端都运行在同一台计算机上。客户端通过本地通信机制与服务器端进行交互。
通信方式
- 通过本地通信机制
共享内存:多个进程共享同一块内存区域,用于快速数据交换。 消息队列:一个进程向队列中写入消息,另一个进程从队列中读取消息。 管道(Pipe):一种半双工的通信方式,数据只能单向流动。 套接字(Socket):一种通用的进程间通信机制,支持不同主机上的进程之间的通信。在本地环境下,可以使用Unix Domain Socket来实现高效的进程间通信。 远程过程调用(RPC):允许一个程序(客户端)调用另一个程序(服务器端)中的过程或函数,就像调用本地函数一样。
- 通过网络层通信
TCP/IP协议栈:包括传输控制协议(TCP)和互联网协议(IP),用于可靠的数据传输。 HTTP/HTTPS协议:用于客户端(如浏览器)与服务器之间进行超文本传输。HTTPS是HTTP的安全版本,通过SSL/TLS加密来保护数据传输的安全。 其他协议:如FTP(文件传输协议)、SMTP(简单邮件传输协议)等,用于特定类型的网络通信。
本地C端 + 远程S端
客户端和服务器端通过网络进行通信,支持跨主机、跨网络的交互。
通信方式————通过网络层通信TCP/IP协议栈:包括传输控制协议(TCP)和互联网协议(IP),用于可靠的数据传输。 HTTP/HTTPS协议:用于客户端(如浏览器)与服务器之间进行超文本传输。HTTPS是HTTP的安全版本,通过SSL/TLS加密来保护数据传输的安全。 其他协议:如FTP(文件传输协议)、SMTP(简单邮件传输协议)等,用于特定类型的网络通信。
数据传输格式:
JSON(JavaScript Object Notation):一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。 XML(可扩展标记语言):一种标记语言,用于标记电子文件使其具有结构性。 二进制格式:如Protocol Buffers(由Google开发的一种语言无关、平台无关的数据序列化方法),用于高效的数据传输。
🌿数据库软件
即数据、数据库和数据库管理系统组成的数据库软件,而人使用维护组成了数据库系统。所以,我们单纯的讨论数据库软件时,指的是数据、数据库、数据库管理系统,而非数据库系统。
🍂数据库架构图
由图可知,软件分为客户端与S端,其中C端和S端都可以看作软件,由此客户端也有自己的完整设计,只是功能是与服务器交互。服务器则负责了核心功能,可以看到,它包含了相关工具、存储引擎以及其它核心内容。这里不一一说明了。把C/S看作两个软件就好。
数据库可以独立于数据管理软件进行存储。
数据库的核心功能是数据的存储和管理,但数据的实际存储方式和位置可以灵活配置。- C端可以与S端分开存在
- 除了专门的连接数据库的专门客户端(如,Mysql Client、navicat…)其它软件也可以连接到数据库服务器端。它们靠连接器(JDBK)、中间件或者其它软件作为中介来与数据库服务器端交互。(其中专门的客户端也是配备了连接器的)
🍂数据库的客户端
客户端,简言之,能和数据库交互的关键在于连接器。数据库专门客户端分为命令行界面 和 图形化界面。此外,还有第三方的数据库客户端,所以也可以看出关键在于连接器。
特点用户界面:提供用户交互界面,如图形用户界面(GUI)或命令行界面(CLI)。
请求生成:根据用户输入生成SQL语句或其他数据库操作请求,并将其发送到服务器端。
结果展示:接收服务器端返回的查询结果,并将其展示给用户。
本地处理:在某些情况下,客户端可能会进行一些本地处理,如数据缓存、输入验证等。注意:
- 一个客户端可以连接多个服务器端
- 客户端使用时要打开
- 客户端类型
- 专用客户端:通常会直接配备连接器,以便与服务器端进行高效、优化的通信。在某些情况下,也会通过中间件与服务器端交互,以利用中间件提供的额外功能。
- 通用客户端:通常会使用连接器或中间件与服务器端进行交互。通用客户端的设计目标是兼容多种服务器端应用程序,因此通常会通过中间件来提高通用性和灵活性。
🍂数据库的服务器端
服务器端,即数据库软件的核心,注意,服务器端指的不是服务器,而是服务器上的一个软件。即一个服务器上,可以运行多个服务器端软件(如,web服务器端、邮件服务器端、数据库服务器端),同时也可以有多个不同类型的数据库的服务器端(如,Mysql、redis服务器端)
注意:
- 一个数据库服务器端可以同时与多个客户端(本质:连接器)连接
- 服务器端使用时候也要打开(这就是为啥学习Mysql时候使用时要先数据命令打开数据库服务器端(CMD:net start mysql)
● 组成软件之一————存储引擎
- 存储引擎负责管理数据的物理存储和检索。它决定了数据如何存储在磁盘上,如何进行索引,以及如何高效地读取和写入数据。
存储引擎是数据存储结构的实现关键:
存储引擎是数据存储结构实现的关键。存储引擎负责管理数据的物理存储和检索,决定了数据如何存储在磁盘上,如何进行索引,以及如何高效地读取和写入数据。它是数据库系统中负责数据存储和检索的核心组件功能:
数据存储:将数据持久化存储到磁盘。
数据检索:高效地读取数据。
索引管理:创建和管理索引,以加速查询。
事务管理:支持事务的ACID(原子性、一致性、隔离性、持久性)特性。
并发控制:管理多个用户对数据的并发访问。存储引擎介绍
数据库系统 存储引擎 支持事务 锁类型 适用场景 其他特点 MySQL InnoDB 是 行级锁 高并发和事务支持的场景 支持外键,高性能读写操作 MySQL MyISAM 否 表级锁 读多写少的场景 查询速度快,支持全文索引 MySQL MEMORY 否 表级锁 临时数据存储和高速缓存场景 数据存储在内存中,访问速度快 PostgreSQL 默认引擎 是 行级锁 复杂查询和事务支持的场景 强大的事务支持和并发控制 SQLite 默认引擎 是 表级锁 小型应用和开发环境 轻量级嵌入式数据库 MongoDB WiredTiger 是 文档级锁 高性能和并发支持的场景 支持压缩,减少存储空间 MongoDB MMAPv1 是 集合级锁 读多写少的场景 使用内存映射文件进行数据存储 Cassandra 默认引擎 是 分布式锁 大规模数据存储和高并发访问 分布式架构,高可用性和水平扩展
● 组成软件之一————查询处理器
查询处理器负责解析和执行SQL语句,将用户的查询请求转换为数据库可以理解的操作。
功能:
SQL解析:将SQL语句解析为内部的查询计划。
查询优化:优化查询计划,以提高查询效率。
执行引擎:执行查询计划,返回查询结果。
● 组成软件之一————事务管理器
事务管理器负责管理事务的ACID特性,确保数据的一致性和完整性。
功能:
事务控制:管理事务的开始、提交和回滚。
锁管理:管理数据的锁,以实现并发控制。
日志管理:记录事务日志,用于恢复和回滚。
● 组成软件之一————存储管理
存储管理负责管理数据库的物理存储,包括文件系统、磁盘空间等。
功能:
文件管理:管理数据文件和日志文件。
空间管理:管理磁盘空间的分配和回收。
备份和恢复:提供数据备份和恢复功能。
🍂数据库的连接器/其它软件
想让自己开发的软件连接到数据库,就要使用对应的连接器或者其它软件(如,中间件)
如果不使用专门的客户端(客户端自带连接器),就要自己给自己的软件配置连接器或者其它软件才可以与数据库服务器端连接。
数据库连接器
(也称为数据库驱动程序)是客户端与数据库服务器之间通信的桥梁。它负责建立和管理连接,发送请求,接收响应等。
- 特点
- 建立连接:负责初始化与数据库服务器的网络连接。
- 发送请求:将客户端的请求(如SQL语句)转换为数据库服务器能够理解的格式,并通过网络发送给服务器。
- 接收响应:接收数据库服务器返回的结果,并将其转换为客户端能够理解的格式。
- 管理连接:负责管理连接的生命周期,包括连接的打开、关闭、超时处理等。
连接器和其它软件总结
- 数据库连接器:是客户端与数据库服务器之间通信的桥梁,负责建立和管理连接,发送请求,接收响应等。
- 专用客户端:通常会直接配备连接器,以便与服务器端进行高效、优化的通信。在某些情况下,也会通过中间件与服务器端交互,以利用中间件提供的额外功能。
- 通用客户端:通常会使用连接器或中间件与服务器端进行交互。通用客户端的设计目标是兼容多种服务器端应用程序,因此通常会通过中间件来提高通用性和灵活性。
- 中间件:提供额外的服务和功能,如连接池管理、事务处理、安全认证等,提高系统的性能和可维护性。
🌿数据库在项目中的地位
实际中,一个公司往往会需要像用户提供各种服务(如,电子邮件服务用来验证、数据库服务用来存储用户的信息、web服务器向用户发送网页文件…)
- 所以,一个公司往往有多个服务器用于不同目的,多个服务器间也可以有联系(这就导致网络攻击可以沿着它们之间传播,见《网络空间系统安全概率》的lucky公司攻击案例)
- 同时,数据集中存储在一个服务器上容易出问题(比如一旦被攻击信息可能就不可挽回的丢失了)。由此,公司会对数据库采取其它架构来保障数据安全。见中心化的介绍
相关文章:
数据库blog5_数据库软件架构介绍(以Mysql为例)
🌿软件的架构 🍂分类 软件架构总结为两种主要类型:一体式架构和分布式架构 ● 一体化架构 一体式架构是一种将所有功能集成到一个单一的、不可分割的应用程序中的架构模式。这种架构通常是一个大型的、复杂的单一应用程序,包含所…...
mysql可重复读隔离级别下的快照读和当前读
在MySQL的可重复读隔离级别下,快照读和当前读是两种不同的读取方式,它们的特点和应用场景有所不同。 快照读 定义:快照读是指在事务中读取数据时,读取的是事务开始时的历史版本数据,而非当前最新的数据。实现原理&…...
MySQL 单表与多表操作详解
🎈边走、边悟🎈迟早会好 目录 一、单表查询整合 (一)通用模板展示 (二)举例说明 1. 简单查询 2. 条件查询 3. 高级查询 (三)注意事项 (四)Mapper 简…...
Spring概念问题详解
一、Bean的生命周期 1.1 BeanDefinition Spring容器在进行实例化时,会将xml配置的<bean>的信息封装成一个BeanDefinition对象,Spring根据BeanDefinition来创建Bean对象,里面有很多的属性用来描述Bean。 beanClassName:be…...
使用pm2 部署react+nextjs项目到服务器
记录一下 next.config.js中: output: standalone,package.json配置: "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…...
JVM常量池(class文件常量池,运行时常量池,字符串常量池)
文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池(全网最详细最有深度) - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的…...
Java 大视界 -- 基于 Java 的大数据分布式存储在视频会议系统海量视频数据存储与回放中的应用(263)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
光谱相机在地质勘测中的应用
一、矿物识别与蚀变带分析 光谱特征捕捉 通过可见光至近红外(400-1000nm)的高光谱分辨率(可达3.5nm),精确识别矿物的“光谱指纹”。例如: 铜矿:在400-500nm波段反射率显著低于围…...
深入解析Java泛型:从定义到实战应用
目录 🚀前言🤔泛型的定义🐧泛型类🌟泛型接口✍️泛型方法、通配符、上下限💯泛型方法💯 通配符与上下限⚙️通配符(Wildcard)⚙️泛型上下限⚙️应用场景 🦜泛型支持的类…...
数据结构:绪论之时间复杂度与空间复杂度
作者主页 失踪人口回归,陆续回三中。 开辟文章新专栏——数据结构,恳请各位大佬批评指正! 文章目录 作者主页 数据结构的基本知识数据:数据元素:数据对象:数据类型:数据结构:逻辑结…...
ARM Linux远程调试
准备 虚拟机既能ping通开发板,又能ping通外网,还要能ping通Windows主机(如果你有上位机通信(tftp、vsftp、ssh)的需求) VMware 添加网络适配器2用作桥接网卡,原有的网络适配器保持为NAT模式 打开虚拟网络编辑器,配置VMnet0为桥接模式,外部连接设置为Realtek PCIe G…...
PostgreSQL 14 pacemaker 高可用集群
核心架构原理 集群组成(典型三节点结构): [Node1] PostgreSQL Pacemaker Corosync pcsd [Node2] PostgreSQL Pacemaker Corosync pcsd [Node3] PostgreSQL Pacemaker Corosync pcsd ↕ ↕ ↕ ← Corosync 多…...
英语学习5.21
Far from sensible 表示“很不明智的”、“离明智相去甚远”。这是一个固定表达,结构是 far from adj.,意思是“根本不……”,常见例子: far from perfect(远非完美) far from acceptable(远…...
实现了TCP的单向通信
1. 客户端代码:Client.java package com.xie.javase.net1;import java.io.*; import java.net.*;public class Client {public static void main(String[] args) {Socket socket = null;BufferedWriter bw = null;try {// 1. 获取本机IP地址对象InetAddress localHost = Inet…...
华为云Flexus+DeepSeek征文 | 基于ModelArts Studio和Cherry Studio快速构建午餐管家助手
目录 一、前言 二、ModelArts Studio(MaaS)介绍与应用场景 2.1ModelArts Studio(MaaS)介绍 2.2 ModelArts Studio(MaaS)使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Cherry Studio简介和安…...
Spring AI 1.0 GA 正式发布
Spring AI 1.0 GA 正式发布 快速入门核心特性1. **增强型 LLM(大语言模型)**2. **MCP 协议支持**3. **RAG(检索增强生成)**4. **评估与监控**5. **智能代理(Agents)** 下一步计划 VMware Spring 团队 Mark …...
【计算机网络 第8版】谢希仁编著 第五章运输层 题型总结1 UDP和TCP报文格式
UDP报文 5.13 这一题可以先问AI: 但是问了AI,肯定想知道:这些知识点在书上哪里?怎么这么难找? 没错这题主要是靠IP地址,所以应该在第四章。 P136 P137 省流: 1.UDP的首部格式是8个字节&…...
华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析
目录 一、前言 二、ModelArts Studio(MaaS)介绍与应用场景 2.1ModelArts Studio(MaaS)介绍 2.2 ModelArts Studio(MaaS)使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Deep Research简介和安…...
计算机网络——Session、Cookie 和 Token
在 Web 开发中,Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系,也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义: 是浏览器存储在客户端的小…...
AAOS系列之----简介
一文讲透AAOS架构,点到为止不藏私 📌 AAOS是以一个系统APP的方式集成进安卓系统中,通过在SystemServer中启动其中的Service 📚 1. CarServcie 是如何被启动的? AAOS中的核心服务是CarService,其描述如下: 代码路径如下: android1…...
CTF签到题
1.题目:VmxkMFUxVXhTbkpOU0dSVVZrWktWRlpyVm5kU2JGSnlWbXhhYkdKRlduaFpWVlpoVkcxRmQwMUlhRlpXTTFKUVZXdFZlR05zWkZsaVJrcG9ZbGRvUmxaR1dsZFVhekZIVW14V1lWSlZOVkJVVlZaV1RVWldjbFZzVGxOTlJGWlhWa1pvZDFWdFJuTlRhMVpXVm14YVIxUlVSa2RPYkVweVYyeENWMVpVUlhwV1ZtUjNVMj…...
甲骨文云服务器适合做网站吗
甲骨文云服务器:建网站,它到底是不是“神队友”? 各位想在网上“立门户”的老板、个人创作者们,大家好!现在这年头,没个自己的网站,那感觉就像做生意没个店面、搞创作没个画廊一样,…...
性能测试场景题
题目 针对618,双十一活动的,一个电商系统,如何设计压力测试方案? 参考答案 针对618、双十一等高并发电商大促活动,压力测试方案需覆盖全链路性能瓶颈识别、容量评估和极端场景验证。以下为详细设计框架,…...
数智读书笔记系列033《软件设计的哲学(第2版)》:复杂性管理的艺术
《软件设计的哲学》(A Philosophy of Software Design)书籍简介 作者:约翰奥斯特豪特(John Ousterhout) 出版信息:第2版于2024年11月由人民邮电出版社出版,中文版由茹炳晟、王海鹏翻译。 作者背景 奥斯特豪特是斯坦福大学计算机科学教授、美国国家工程院院士,拥有丰…...
MySQL与Redis数据同步实践与优化
一、数据不一致的典型场景 写入顺序不一致 当业务逻辑需要同时更新数据库和缓存时,若出现"先删缓存后更新DB"或"先更新DB后删缓存"操作失败,会导致缓存与数据库数据版本不一致。 并发读写冲突 高并发场景下可能出现: …...
HarmonyOS 鸿蒙应用开发基础:EventHub,优雅解决跨组件通信难题
EventHub是鸿蒙开发中用于线程内通信的事件中心模块,基于发布订阅模式实现组件间的高效通信。它完美解决了传统回调方式在多层嵌套场景下的痛点,使得组件间的通信更加灵活和易于管理。 核心特性 事件中心机制:通过事件名进行通信,…...
如何解决鸿蒙应用闪退问题
如何解决鸿蒙应用闪退问题 本文是一份面向 ArkTS/JavaScript/C 多语言开发者的综合性排查与优化手册,覆盖 HarmonyOS/OpenHarmony 5.x 时代 常见闪退根因、诊断流程、调试技巧、CI 监控及线上防护方案,力争帮你把 Crash 数量降到 …...
人民日报社主管媒体深度聚焦珈和科技“遥感+AI”农险精准化突破:首创“四维数据贯通”模式 树行业转型新标杆
近日,由人民日报社主管的《中国城市报》对珈和科技与国寿财险湖南省分公司联合打造的农业保险数字化标杆项目进行了深度报道。 作为"遥感AI"技术在农业风险管理领域的创新实践者,珈和科技依托自主构建的覆盖“天-空-地-人”的全维度智慧农业技…...
(1)深度学习基础知识(八股)——常用名词解释
1. FC FC全称是Fully Connect全连接层,也被称为Linear Layer线性层。 它的核心是:每个输入神经元 与 每个输出神经元 都要通过权重连接,适用于将输入特征映射到高维或者低维空间。 数学表示 对于一个输入向量,FC的计算方式是: 是…...
深度学习零基础入门(2)-实战1:激活函数、前向传播和反向传播
一、激活函数 激活函数的作用 激活函数在神经网络中起着至关重要的作用,主要用于引入非线性因素,使得神经网络能够学习和模拟复杂的非线性关系。如果没有激活函数,无论神经网络有多少层,最终都只能表示线性变换,无法…...
LeRobot的机器人控制系统(下)
目的和范围 机器人控制系统是 LeRobot 框架的核心组件,提供用于操作、标定和记录物理机器人数据的接口。该系统支持远程操作、记录演示数据集、重放动作以及在真实机器人上运行已训练的策略。它充当用户、物理机器人硬件和训练流程之间的桥梁。本文介绍机器人控制系…...
Linux Docker安装【再探完美版教程】
Dokcer安装 文章目录 Dokcer安装安装前准备安装前设置yum网络镜像源【重要】查看服务器系统版本以及内核版本查看服务器内核版本安装依赖包:设置阿里云docker-ce镜像源 安装Dockerdocker-ce安装启动docker并设置开机自启配置阿里云镜像测试: Docker概念&…...
Java-根据路径获取JSON字符串的value值
实现内容 入参: 一串json的字符串,根据传入的字符串路径和想要获取此路径下的key值 出参: 此路径下的key的value值 实现原理 采用一层一层获取的方式,判断第一层并且获取第一层的数据,放入到数组中,将该数组放到下一次循环,再获取下一层的数据 实现方法 /*** 根据路径获取…...
【小呆的随机振动力学笔记】随机过程基础【一】
文章目录 1. 随机过程基础1.1 随机过程的概率分布1.2 随机过程的统计特征1.3 平稳随机过程1.4 遍历过程平稳随机过程 1. 随机过程基础 \quad\quad 上一节,我们主要回顾了概率论知识,接下来我们来回顾随机过程基础理论(或者叫随机场࿰…...
Java 内存模型中的读、写屏障
目录 1. 基本概念 1.1、读屏障 (Load Barrier) 1.2、写屏障 (Store Barrier) 1.3、咖啡店例子 2. 常见内存屏障 2.1、volatile 1、缓存可见性 2、指令重排序 3、内存屏障 2.2、final 2.3、synchronized关键字 2.4、手动内存屏障 3、不同屏障类型对比 4、实…...
AI 多 Agent 图形化开发深度解析:iVX IDE 与主流产品技术架构对比研究
随着人工智能技术的发展,软件开发正从手工编码向智能辅助开发演进。在 AI 多 Agent 图形化开发领域,iVX IDE 与 GitHub Copilot、Tabnine、CodeGeeX 等主流产品代表了不同的技术路线。本文从技术架构、功能实现、性能表现、生态建设等维度,对…...
微服务中的 AKF 拆分原则:构建可扩展系统的核心方法论
在数字化浪潮的推动下,互联网应用规模呈指数级增长,传统单体架构逐渐暴露出难以扩展、维护成本高等问题,微服务架构应运而生并成为企业应对复杂业务场景的主流选择。然而,随着业务的不断扩张和用户量的持续增加,如何确…...
MySQL迁移SSL报错
文章记录了之前tdsql迁移IDC过程中遇到的小问题 环境 xboss业务: tdsql未启用SSL, IDC-mysql启用了SSL: 原因分析 1, 迁移前: 因为tdsql未启用ssl, 且应用未显式配置ssl JDBC默认使用非SSL连接,因此可以正…...
Mysql的主从同步
一主一从 IP地址主机名master节点192.168.10.200mysql200slave节点192.168.10.201mysql201 master节点操作 配置文件增加两行参数 [rootmysql200 ~]# tail -n 2 /etc/my.cnf.d/mysql-server.cnf log-bin/mylog/mysql200 server-id200 [rootmysql200 ~]# systemctl restart …...
云原生微服务的前世今生
目录 Part1 时代背景 Part2 何为微服务? Part3 微服务出现的意义 Part4 企业应用 京东:国内电商领域的微服务实践 阿里:微服务在复杂业务场景中的应用 Part5 Istio:服务网格时代的微服务治理中枢 Istio 的技术定位…...
Python之虚拟环境
文章目录 Python之虚拟环境虚拟环境核心概念为什么需要虚拟环境?虚拟环境注意事项 创建虚拟环境使用 venv (Python 3.3 内置)使用 virtualenv (第三方工具,支持Python 2/3)与 venv创建方式的区别Python 版本支持功能与兼容性依赖关系和性能命令行工具创建…...
【Java高阶面经:数据库篇】15. 零停机数据迁移:从双写到一致性校验
一、迁移架构设计:双写+增量同步的三层防护模型 1.1 核心架构流程图 #mermaid-svg-MfnakvBNrtFScrMe {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MfnakvBNrtFScrMe .error-icon{fill:#552222;}#mermaid-svg-Mf…...
车载以太网网络测试-27【SOME/IP-SD简述】
文章目录 1 摘要2 SOME/IP-SD协议介绍2.1 定义与作用2.2 SOMEIP/SD协议通俗易懂的理解2.2.1 SOMEIP/SD协议是什么?2.2.2 通信流程(简化)2.2.3 车载功能示例2.2.4 类比理解 2.3 SOME/IP-SD报文结构2.3.1 Flags2.3.1.1 REBOOT (Bit 7)2.3.1.2 U…...
Ubuntu 22.04上升级Node.js版本
在Ubuntu 22.04上升级Node.js版本有几种方法,推荐使用NVM(Node Version Manager),因为它可以让你轻松管理多个Node.js版本。 方法1: 使用NVM(推荐) 1. 安装NVM # 下载并安装NVM curl -o- https://raw.gi…...
软件设计师“面向对象设计”真题考点分析——求三连
一、考点分值占比与趋势分析 综合知识历年考察统计 年份考题数分值占比考察重点2018334%继承类型、设计原则2019445.3%多态实现、类关系2020556.7%设计模式应用、接口隔离2021334%消息通信、封装特性2022668%开闭原则、组合模式2023556.7%模板方法、适配器模式2024445.3%单一…...
flutter dart 函数语法
以下是 Dart 语言中函数语法的 详细实例说明,涵盖了所有常用写法 基本语法参数类型(必选、可选、命名、默认值)匿名函数、箭头函数高阶函数(函数作为参数/返回值)异步函数(async / await) 1. …...
鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter
概述 将 Flutter 模块添加至宿主鸿蒙项目中后,接下需要实现页面跳转、消息通信等功能,本文重点介绍如何初始化 Flutter。 项目配置 添加依赖 编辑 ohos_app/oh-package.json 文件 如果通过 Har 包方式引入 Flutter 模块,则需要添加如下内…...
微信小程序之Promise-Promise初始用
我们来尝试使用Promise。 1、需求,做个抽奖的按钮, 抽奖规则: 30%的几率中奖,中奖会提示恭喜恭喜,奖品为10万 RMB 劳斯莱斯优惠券,没中奖会提示再接再厉。 2、先搭界面: <view class&qu…...
工业 / 农业 / AR 场景怎么选?Stereolabs ZED 双目3D相机型号对比与选型建议
Stereolabs ZED 相机系列为视觉感知领域提供了多种创新解决方案,适用于不同应用场景。选择合适的 ZED 相机型号,需综合考虑分辨率、深度感知范围、接口类型等因素。 Stereolabs ZED 相机产品系列概览 ZED:首款立体视觉相机,专为高…...
(Git) 稀疏检出(Sparse Checkout) 拉取指定文件
文章目录 🏭作用🏭指令总览👷core.sparseCheckout👷sparse-checkout 文件 🏭实例演示⭐END🌟交流方式 🏭作用 类似于 .gitignore 进行文件的规则匹配。 一般在需要拉取大型项目指定的某些文件…...