极狐GitLab GEO 功能介绍
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:
- 极狐GitLab 中文文档
- 极狐GitLab 中文论坛
- 极狐GitLab 官网
Geo (PREMIUM SELF)
Geo 是广泛分布的开发团队的解决方案,可作为灾难恢复策略的一部分提供热备份。Geo 不是 开箱即用的 HA 解决方案。
WARNING:Geo 在不同版本之间经历了重大变化。支持升级并会记录升级,但您应该确保使用正确版本的安装文档。
Geo 提供极狐GitLab 实例的本地只读站点。这可以减少克隆和获取大型仓库所需的时间,从而加快开发速度。
为了确保您使用正确版本的文档,请访问 JihuLab.com 上的 Geo 页面,并从 切换分支/标签 下拉列表中选择适当的版本。例如,v13.7.6-ee。
Geo 使用 Geo 术语文档中描述的一组已定义的术语。
请务必熟悉这些术语。
用例
实施 Geo 有以下优势:
- 将分布式开发人员克隆和获取大型仓库和项目的时间从几分钟缩短到几秒钟。
- 让您的所有开发人员都能贡献想法,并且并行工作,无论他们身在何处。
- 平衡您的主要和次要站点之间的只读负载。
此外:
- 除了读取极狐GitLab Web 界面中可用的任何数据外,还可用于克隆和获取项目(请参阅限制)。
- 克服远程办公室之间的缓慢连接,通过提高分布式团队的速度来节省时间。
- 有助于减少自动化任务、自定义集成和内部工作流程的加载时间。
- 可以在灾难恢复场景中快速故障转移到次要站点。
- 允许到次要站点的计划故障转移。
Geo 提供:
- 次要 站点上的完整极狐GitLab 体验:维护一个主极狐GitLab 站点,同时为每个分布式团队启用具有完全读写和用户界面体验的次要站点。
- 认证系统勾子:次要 站点接收从 主要 站点的所有认证数据(注入用户账号和登录)。
Gitaly 集群
Geo 不应与 Gitaly 集群混淆。有关 Geo 和 Gitaly 集群之间差异的更多信息,请参阅与 Geo 对比。
工作原理
这部分是关于极狐GitLab 环境中 Geo 工作原理的简单总结。更多详情,可以查看 Geo 开发页面。
您可以使用 Geo 实例来克隆和拉取项目,此外还能够读取任何数据。这使得远距离操作大型存储库的速度快得多。
启用 Geo 后:
- 原始实例称为主要站点。
- 复制的站点称为次要站点。
请记住:
-
次要站点与主要站点对话:
- 获取登录用户数据 (API)。
- 复制仓库、LFS 对象和附件 (HTTPS + JWT)。
-
主要 站点会和 次要 站点进行通信,以查看数据复制详情。主要 站点针对 次要 站点执行 GraphQL 查询以获取同步和验证数据(通过 API)。
-
您可以直接推送到 次要 站点(用 HTTP 和 SSH,包括 Git LFS),并且将这些操作请求代理到 主要站点。
-
当使用 Geo 时,有一些限制。
架构
下图说明了 Geo 的底层架构。
在此图中:
-
有主要站点和一个次要站点的详细信息。
-
只能在主要站点上执行对数据库的写入。 次要站点通过 PostgreSQL * 流复制接收数据库更新。
-
如果存在,LDAP 服务器 应配置为针对 灾难恢复 方案进行复制。
-
次要站点使用受 JWT 保护的特殊授权对主要站点执行不同类型的同步:
- 通过 HTTPS 通过 Git 克隆/更新仓库。
- 附件、LFS 对象和其他文件使用私有 API 端点通过 HTTPS 下载。
从执行 Git 操作的用户的角度来看:
-
主要站点表现为一个完整的读写极狐GitLab 实例。
-
次要站点是只读的,但代理 Git 推送操作到主要站点。这使得次要站点本身似乎支持推送操作。
为了简化图表,省略了一些必要的组件。
- Git over SSH 需要 gitlab-shell 和 OpenSSH。
- 需要通过 HTTPS 的 Git gitlab-workhorse。
次要站点需要两个不同的 PostgreSQL 数据库:
-
从极狐GitLab 主数据库流式传输数据的只读数据库实例。
-
另一个数据库实例由次要站点内部用于记录已复制的数据。
在次要站点中,有一个额外的守护进程:Geo Log Cursor。
运行 Geo 的要求
运行 Geo 需要以下条件:
-
支持 OpenSSH 6.9 或更高版本的操作系统(需要快速查找数据库中授权的 SSH 密钥)。已知以下操作系统附带当前版本的 OpenSSH:
-
CentOS 7.4 或更高版本
-
Ubuntu 16.04 或更高版本
-
-
可能的话,您应该在所有 Geo 站点上使用相同的操作系统版本。如果在 Geo 站点间使用不同的操作系统版本,您 必需 跨站点检查 OS 区域数据的兼容性以避免数据库索引的静默损坏。
-
极狐GitLab 发行版中支持流复制的 PostgreSQL 版本。
- PostgreSQL 逻辑复制 并不支持。
-
所有站点必需运行相同的 PostgreSQL 版本。
-
Git 2.9 或更高版本
-
使用 LFS 时用户端的 Git-lfs 2.4.2 或更高版本
-
所有站点都必须运行相同的极狐GitLab 版本。主、次和补丁版本都必须相匹配。
-
所有站点必须定义相同的仓库存储。
此外,请查看极狐GitLab 最低要求,我们建议您使用最新版本的极狐GitLab 以获得更好的体验。
防火墙规则
下表列出了必须在主要和次要站点之间为 Geo 开放的基本端口。为了简化故障转移,我们建议在两个方向上打开端口。
源站点 | 源端口 | 目的地站点 | 目的地端口 | 协议 |
---|---|---|---|---|
主要 | Any | 次要 | 80 | TCP (HTTP) |
主要 | Any | 次要 | 443 | TCP (HTTPS) |
次要 | Any | 主要 | 80 | TCP (HTTP) |
次要 | Any | 主要 | 443 | TCP (HTTPS) |
次要 | Any | 主要 | 5432 | TCP |
在软件包默认值文档中查看极狐GitLab 使用的端口的完整列表。
NOTE:Web 终端支持要求您的负载均衡器正确处理 WebSocket 连接。
使用 HTTP 或 HTTPS 代理时,您的负载均衡器必须配置为通过
Connection 和 Upgrade hop-by-hop headers。有关更多详细信息,请参阅 web 终端集成指南。
NOTE:对端口 443 使用 HTTPS 协议时,您必须向负载均衡器添加 SSL 证书。如果您希望在极狐GitLab 应用程序服务器上终止 SSL,请使用 TCP 协议。
NOTE:如果您想为外部/内部 URL 仅使用 HTTPS,就没必要在防火墙中打开 80 端口了。
内部 URL
从任何 Geo 次要站点到主 Geo 站点的 HTTP 请求使用主 Geo 站点的内部 URL。如果在管理中心的主 Geo 站点设置中未明确定义,则使用主要站点公开 URL。
要更新主 Geo 站点的内部 URL:
1.在左侧导航栏,底部,选择 管理员。
2.选择 Geo > 站点。
3.在主要站点上选择 编辑。
4.更改 内部 URL,然后选择 保存更改。
Geo 跟踪数据库
跟踪数据库实例用作元数据来控制本地实例磁盘上需要更新的内容。例如:
- 下载新 assets。
- 获取新的 LFS 对象。
- 从最近更新的仓库中获取更改。
因为复制的数据库实例是只读的,所以我们需要为每个次要站点添加这个额外的数据库实例。
Geo Log Cursor
这个守护进程:
- 读取由主要站点复制到次要数据库实例的事件日志。
- 使用必须执行的更改更新地理跟踪数据库实例。
当跟踪数据库实例中的某些内容被标记为要更新时,次要站点上运行的异步作业会执行所需的操作并更新状态。
这种新架构使极狐GitLab 能够灵活应对站点之间的连接问题。次要站点与主要站点断开连接的时间无关紧要,因为它能够以正确的顺序重播所有事件并再次与主要站点同步。
限制
WARNING:此限制列表仅反映最新版本的极狐GitLab。如果您使用的是旧版本,则可能会有额外的限制。
-
直接推送到次要站点会将请求重定向(对于 HTTP)或代理(对于 SSH)到主要站点的请求,而不是直接处理它,除非在 URI 中使用嵌入了凭据的 HTTP 上的 Git。例如,https://user:password@secondary.tld。
-
主要站点必须在线才能进行 OAuth 登录。现有会话和 Git 不受影响。
安装需要多个手动步骤,视情况而定,总共可能需要大约一个小时。
议题/合并请求的实时更新(例如,通过长轮询)在次要站点上不起作用。 -
极狐GitLab Runners 无法在次要站点注册。
-
选择性同步仅限制复制哪些仓库和文件。整个 PostgreSQL 数据仍然被复制。选择性同步不是为了适应合规性/出口控制用例而构建的。
-
Pages 访问控制在次要节点上无效。
-
极狐GitLab chart 的 Geo 不支持统一 URL。
-
由于所有未升级的次要站点的完全重新同步和重新配置,多次要站点的灾难恢复会导致停机。
-
对于 Git over SSH,为了使项目克隆 URL 正确显示,无论您正在浏览哪个站点,次要站点都必须使用与主站点相同的端口。
对于通过 SSH 对次要站点进行 Git 的推送,不适用于超过 1.86 GB 的推送。 -
备份无法在次要站点上运行。
复制的数据类型
关于极狐GitLab 数据类型和已复制的数据类型的完整列表。
安装后文档
在 次要 站点上安装极狐GitLab 并执行初始化配置后,查看如下内容以获得安装后的相关信息。
设置 Geo
关于配置 Geo 的更多信息,可以查看设置 Geo。
配置 Geo 的对象存储
关于 Geo 对象存储配置的更多详情,可以查看Geo 对象存储。
容器镜像仓库的复制
关于如何复制容器镜像仓库的更多详情,可以查看次要 站点的容器镜像仓库。
为 Geo 站点设置统一 URL
关于使用 AWS Route53 或 Google Cloud DNS 设置统一 URL 的示例,请参阅为 Geo 站点设置统一的 URL。
单点登录(SSO)
关于 SSO 配置的更多详情,可以查看 Geo SSO。
LDAP
关于 LDAP 配置的更多详情,可以查看 Geo SSO > LDAP。
调试 Geo
有关调整 Geo 的更多信息,请参阅调试 Geo。
暂停和恢复复制
更多详情,可以查看暂停和恢复复制。
回填
设置次要站点后,它会开始在称为回填的过程中从主要站点复制丢失的数据。您可以从浏览器中的主要站点的 Geo 节点仪表盘监控每个 Geo 站点上的同步过程。
回填期间发生的失败计划在回填结束时重试。
Runners
- 除了我们部署一组 runner 的标准最佳实践之外,还可以将 runner 配置为连接到 Geo 次要站点以分散作业负载。可查看如何在次要站点上注册 runner。
- 另外可以查看如何处理 Runner 灾难恢复。
升级 Geo
关于如何将您的 Geo 站点升级到最新极狐GitLab 版本的更多详情,可以查看升级 Geo 站点。
安全审核
关于 Geo 安全的更多详情,可以查看 Geo 安全审核。
删除 Geo 站点
有关删除 Geo 站点的详细信息,请参阅删除次要 Geo 站点。
禁用 Geo
要了解如何禁用 Geo,请参阅禁用 Geo。
日志文件
Geo 将结构化的日志信息存储在 geo.log 文件中。
关于如何访问和消耗 Geo 日志的更多详情,可以查看日志系统文档中关于 Geo 的部分。
灾难恢复
关于在灾难恢复解决方案中使用 Geo 来减少数据丢失风险的更多信息,可以查看灾难恢复。
经常被问的问题
关于常见问题的答案,可以查看Geo FAQ。
故障排除
- 关于 Geo 的故障排查步骤,查看 Geo 故障排查指南。
- 关于灾备的故障排查步骤,查看Geo 故障转移故障排查指南。
技术支持
如果您在配置 Geo 的过程中遇到任何问题,您可以在极狐GitLab 官方论坛上发帖求助,您也可以直接扫描下方二维码咨询专业人员:
相关文章:
极狐GitLab GEO 功能介绍
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 Geo (PREMIUM SELF) Geo 是广泛分布的开发团队的解决方案,可作为灾难恢复策略的一部分提供热备份。Geo 不是 开箱…...
快速上手,OceanBase + MCP + LLM,搭建 AI 应用
在 AI 技术发展的进程中,大语言模型(LLM)凭借卓越的信息处理与推理能力广受重视。然而,数据孤岛问题仍是 LLM 面临的核心挑战。目前,LLM 的推理主要依赖于预先训练的数据和有限的上下文窗口,既无法动态访问…...
【Python爬虫基础篇】--1.基础概念
目录 1.爬虫--定义 2.爬虫--组成 3.爬虫--URL 1.爬虫--定义 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体…...
Linux :进程替换
进程替换 (一)进程程序替换1.替换原理2.替换函数exec函数命名理解 (二)实现简易shell (一)进程程序替换 1.替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往…...
XC7K410T‑2FFG900I 赛灵思XilinxFPGA Kintex‑7
XC7K410T‑2FFG900I Xilinx 赛灵思FPGA Kintex‑7 系列定位:Kintex‑7 中端,高性价比与高性能平衡 工艺节点:28 nm HPL(High‑Performance, Low‑Power)HKMG(High‑κ Metal Gate) 逻辑资源&…...
list容器介绍及模拟实现和与vector比较
目录 list容器介绍 lisy接口 list迭代器的注意事项 迭代器失效 list的模拟实现 list的节点 list的迭代器实现 list的接口实现 vector和list的优缺点 vector优点: vector缺点: list优点: list缺点: 总结: …...
[图论]Prim
Prim 本质:BFS贪心,对点进行操作。与最短路Dijkstra算法是“孪生兄弟”。存储结构:链式前向星适用对象:可为负权图,可求最大生成树核心思想:最近的邻接点一定在最小生成树(MST)上,对点的最近邻…...
【python】pysharm常用快捷键使用-(1)
*1.格式化代码【Ctrl Alt L】 写代码的时候会有很多黄色的波浪号(如图)又叫蚂蚁线,可以点击任意黄色波浪号的代码,然后按下【Ctrl Alt L】进行代码格式化。 2.添加函数功能和参数注释 添加函数文档字符串 docstring 在函数…...
06-DevOps-自动构建Docker镜像
前面已经完成了jar文件的打包和发布,但在实际使用时,可能会遇到外部依赖环境发生改变,为了解决这些问题,更多的做法是把应用程序以docker镜像,生成容器的方式运行,这是一种标准化的方式。 创建Dockerfile文…...
案例驱动的 IT 团队管理:创新与突破之路:第五章 创新管理:从机制设计到文化养成-5.2 技术决策民主化-5.2.2技术选型的量化评估矩阵
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 案例驱动的 IT 团队管理:创新与突破之路 - 第五章 创新管理:从机制设计到文化养成 - 5.2 技术决策民主化5.2.2 技术选型的量化评估矩阵一、技术选型的…...
力扣面试150题--有效的字母异位词和字母异位词分组
Day 24 题目描述 思路 初次思路:如果两个字符串为异位词,说明它们长度相同并且字母出现的次数相同,于是有以下做法: 定义一个map,来保存s中每个字符的出现次数处理特殊情况,如果长度不同,直接…...
WSL2-Ubuntu22.04安装URSim5.21.3
WSL2-Ubuntu22.04安装URSim5.21.3 准备安装启动 准备 名称版本WSL2Ubuntu22.04URSim5.21.3VcXsrvNaN WSL2安装与可视化请见这篇:WSL2-Ubuntu22.04-配置。 安装 我们是wsl2-ubuntu22.04,所以安装Linux版本的URSim,下载之前需要注册一下,即…...
配合 Spring Bean 注入,把 Function 管理起来?
大家好呀!今天我们来聊聊一个特别有意思的话题 - 如何在Spring中优雅地管理和注入Function对象。就像把各种调料整齐地摆在厨房里一样,我们要把各种函数方法也管理得井井有条!🍳 一、为什么要把Function管起来?&#…...
Wireshark TS | 异常 ACK 数据包处理
问题背景 来自于学习群里群友讨论的一个数据包跟踪文件,在其中涉及到两处数据包异常现象,而产生这些现象的实际原因是数据包乱序。由于这两处数据包异常,都有点特别,本篇也就其中一个异常现象单独展开说明。 问题信息 数据包跟…...
vue3 el-dialog新增弹窗,不希望一进去就校验名称没有填写
就是在进入弹窗时、点击关闭/取消按钮时等情况清空该表单校验,在失去焦点或者点击确定/提交按钮的时候再去校验。这里默认已经写好了在失去焦点或者点击确定/提交按钮的时候的校验逻辑。 解决步骤: 一、定义清空表单校验方法 // 清空表单校验const cle…...
【2-12】CRC循环冗余校验码
前言 前面我们介绍了纠错码——海明码,同时还说明了为什么现代网络常用检错重传而不是纠错,本文介绍CRC循环冗余校验码。 文章目录 前言1. 简单定义2. 生成规则3. 例题3.1 例13.2 例2 后记修改记录 1. 简单定义 CRC(Cyclic Redundancy Chec…...
多 Agent 协作怎么整:从谷歌A2A到多Agent交互方案实现
写在前面:多 Agent 协作模式 大型语言模型(LLM)的浪潮之下,能够自主理解、规划并执行任务的 AI Agent(智能体)正成为人工智能领域最炙手可热的焦点。我们惊叹于单个 Agent 展现出的强大能力,但当面对日益复杂的现实世界任务时,单个 Agent 的局限性也逐渐显现。 正如人…...
内部聊天软件,BeeWorks-安全的企业内部通讯软件
企业在享受数据便利的同时,如何保障企业数据安全已经成为无法回避的重要课题。BeeWorks作为一款专为企业设计的内部通讯软件,通过全链路的安全能力升维,为企业提供了一个安全、高效、便捷的沟通协作平台,全面保障企业数据安全。 …...
健康养生:开启活力生活的密钥
当我们在健身房看到年逾六旬却身形矫健的老人,在公园偶遇精神矍铄、步伐轻快的长者,总会惊叹于他们的健康状态。其实,这些都得益于长期坚持科学的养生之道。健康养生并非遥不可及的玄学,而是融入生活细节的智慧。 在饮食的世界…...
士兵乱斗(贪心)
问题 B: 士兵乱斗 - USCOJ...
Android 不插SIM卡,手机不能拨打紧急电话;2g+gsm配置才支持112紧急拨号
[DESCRIPTION] 不插SIM卡,手机不能拨打紧急电话 Root Cause 手机没有写入合法的IMEI;或者当地的某个运营商不支持紧急电话,而手机正好选上了这个运营商;或者当地的某个运营商不支持无SIM卡的紧急电话,而手机正好选上了这个运营商 [SOLUTION] …...
Freertos----信号量
一、信号量的特性: 生产者为任务A、B,消费者为任务C、D一开始信号量的计数值为0,如果任务C、D想获得信号量,会有两种结果: 阻塞:买不到东西咱就等等吧,可以定个闹钟(超时时间)即刻返回失败&…...
AI 数字短视频数字人源码开发的多元价值与深远意义
在短视频行业竞争日益激烈的当下,AI 数字短视频数字人源码开发正以颠覆性的姿态,为行业带来诸多前所未有的优势,从创作、传播到商业变现等环节,全面重塑短视频生态。 创新创作模式,激发无限创意 传统短视频创作受…...
Apifox下载安装与使用
一、Apifox下载 官网地址:Apifox 点击"免费下载",即可进行下载。 二、Apifox安装 双击安装文件即可安装。...
命令行参数解析 - argparse 模块
1、简介 argparse 模块是 Python 标准库中提供的一个 命令行解析模块 ,它可以让使用者以类似 Unix/Linux 命令参数的方式输入参数(在终端以命令行的方式指定参数),argparse 会自动将命令行指定的参数解析为 Python 变量ÿ…...
【Android】 如何将 APK 内置为系统应用(适用于编辑设置属性)
如何将 APK 内置为系统应用(适用于编辑设置属性) 在 Android 中,将 APK 文件内置为系统应用涉及到一系列的命令和步骤。以下是详细的操作流程,帮助您解决常见问题,如 /system not in /proc/mounts 的错误。 挂载system/app获取可读写权限 …...
随手笔记-python-opencv 读取图像的顺序 与pytorch处理图像的顺序
import cv2# 读取图像 image_path path/to/your/image.jpg # 替换为你的图像路径 image cv2.imread(image_path)# 检查图像是否成功读取 if image is None:print("Error: Unable to load image.") else:print("Image loaded successfully.") 1、OpenCV…...
996引擎-实战笔记:Lua 的 NPC 面板获取 Input 内容
996引擎-实战笔记:Lua 的 NPC 面板获取 Input 内容 获取 Input 内容测试NPC参考资料获取 Input 内容 测试NPC -- NPC入口函数 function main(player)local msg = [[<Img|id=9527|x=0|y=0|width=300|height=150|img=public/bg_npc_01.png|bg=1|move=1|reset=1|show=0|layer…...
少数服从多数悖论、黑白颠倒与众人孤立现象之如何应对(一)
观己之前,也可先观众生 如果当时没有袖手旁观,或许唇不亡齿也不会寒 ■如何轻松/更好应对个别被众人孤立(他人、辨别、自己) ●他人被孤立 不参与 有余力,助弱者 被孤立者本身有问题 •不参与:不会辨…...
大模型在急性单纯性阑尾炎预测及治疗方案制定中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 研究方法与创新点 二、急性单纯性阑尾炎概述 2.1 定义与发病机制 2.2 临床表现 2.3 传统诊断方法 三、大模型在急性单纯性阑尾炎预测中的应用 3.1 大模型简介 3.2 数据收集与处理 3.3 模型训练与优化 3.4 预测…...
科研新触角:松灵六轴臂重构具身智能生态
在具身智能(Embodied AI)从实验室走向产业化的进程中,硬件性能与场景适配性成为技术落地的核心瓶颈。松灵机器人推出的全自研科研级轻量六轴机械臂PiPER,以“轻量化设计毫米级精度跨平台兼容”三大技术突破,重新定义了…...
第四讲 感应熔炼电炉设计和感应器参数计算(中)
第四讲 感应熔炼电炉设计和感应器参数计算(中) 目录 第四讲 感应熔炼电炉设计和感应器参数计算(中)磁轭、短路环、消磁环、水冷圈的设计1. 磁轭的设计1.1 磁轭的作用1.2 磁轭的材料1.3 磁轭截面设计1.4 磁轭高度的确定1.5 磁轭总重…...
【Contiki】Contiki源码目录结构
00. 目录 文章目录 00. 目录01. 概述02. Contiki目录结构03. apps目录04. core目录05. CPU目录06. doc目录07. examples目录08. platform目录09. regression-tests目录10. tools目录11. 附录 01. 概述 Contiki是一款开源操作系统,专为微小的低功耗微控制器设计&…...
第五章 SQLite数据库:3、SQLite 常用语法及使用案例
SQLite Insert 语句 SQLite 的 INSERT INTO 语句用于向表中添加新数据行。 语法 INSERT INTO 有两种常见语法形式: 使用列名指定要插入的列: -- 插入数据并指定列名 INSERT INTO TABLE_NAME (column1, column2, ..., columnN) VALUES (value1, va…...
【安卓开发】【Android Studio】Menu(菜单栏)的使用及常见问题
一、菜单栏选项 在项目中添加顶部菜单栏的方法: 在res目录下新建menu文件夹,在该文件夹下新建用于菜单栏的xml文件: 举例说明菜单栏的写法,只添加一个选项元素: <?xml version"1.0" encoding"ut…...
web-ssrfme
SSRF漏洞 SSRF是Server-Side Request Forgery(服务器端请求伪造)的缩写,是一种网络攻击技术。攻击者发送恶意请求给目标服务器,让服务器去访问攻击者指定的其他服务器或者域名,从而获取敏感信息或者攻击其他系统。 S…...
Linux:进程:进程状态
进程是一个负责分配系统资源(CPU时间,内存)的实体。 进程内核数据结构(用于描述和组织进程)代码数据(实际内容) 描述进程-PCB 进程信息被放在⼀个叫做进程控制块的数据结构中,简称…...
NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?
1. 引言 随着互联网业务的爆发式增长,传统关系型数据库(RDBMS)面临着越来越大的挑战。海量数据存储、高并发访问、低延迟响应等需求促使技术团队寻找更适合的解决方案。在这一背景下,NoSQL 和 NewSQL 作为两种不同方向的技术路线…...
在 MoonBit 中引入 Elm 架构:用简单原则打造健壮的 Web 应用
Elm 是一种纯函数式编程语言,专为构建前端 Web 应用程序而设计。它编译为 JavaScript,强调简洁性、性能和健壮性。 纯函数式的含义是函数没有副作用,这使得代码更易于理解和调试。通过强大的静态类型检查,Elm 确保应用程序不会抛…...
虚幻基础:ue引擎的碰撞
文章目录 碰撞:碰撞体间 运动后 产生碰撞的行为——由引擎负责,并向各自发送事件忽略重叠阻挡 碰撞体类型模式纯查询:不清楚具体作用可以阻挡 actor碰撞(武器:刀/子弹)子组件可以产生阻挡 角色的碰撞只有根组件可以阻挡࿰…...
「电商玩法」AI自动创作系统源码:商品图+视频+营销文案一键生成
—零代码搭建智能内容工厂,1人日更1000条爆款素材 电商行业核心痛点 1. 内容产能不足 中小商家无力承担专业摄影/剪辑,商品图质量差→转化率<1%热点借势慢:竞品已开始推“淄博烧烤同款”,你的素材还在拍摄中 2. 成本居高不下…...
图形变换算法
一、学习目的 (1)掌握多面体的存储方法。 (2)掌握图形的几何变换及投影变换。 (3)掌握三维形体不同投影方法的投影图的生成原理。 (4)掌握多面体投影图绘制的编程方法。 二、学…...
no such window: target window already closed的解决方法
我在使用selenium 切换窗口的时候,由于不小心关闭了一个窗口,运行的时候就遇到这样的警告: no such window: target window already closed 具体的问题展示: 这个问题表示:当前的页面被关闭了,selenium 找…...
vue常见错误
1、 Cant resolve vant/lib/index.less 1. 未正确安装 Vant 首先,确保你已经正确安装了 Vant。可以通过以下命令来安装: npm install vant --save 或者使用 yarn: yarn add vant 2. LESS 加载器未配置 如果你在项目中使用了 Vant 的 L…...
chrome中的copy xpath 与copy full xpath的区别
学过测试或者爬虫的,都感觉获取网页元素,使用xpath最方便 但其中有一些细节可能会使你摸不清头脑 比如有时候copy xpath会定位不准确,而使用copy full xpath就可以定位 1、copy xpath(相对路径定位) 优点ÿ…...
【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法
使用docker拉取Dify的时候遇到错误 错误提示 unknown shorthand flag: d in -dUsage: docker [OPTIONS] COMMAND [ARG...]错误原因解析 出现 unknown shorthand flag: d in -d 的根本原因是 Docker 命令格式与当前版本不兼容,具体分为以下两种情况: 新…...
VS Code 安装及常用插件
一、VS Code下载与安装 1、概述 Visual Studio Code简称VS Code,是一款功能强大的代码编辑器,与IDE(集成开发环境)不同,VS Code需要安装平台相应的编译器和语言的扩展。 IDE:是用于提供程序开发环境的应…...
iptables防火墙
目录 一 Linux防火墙基础 1 iptables的表,链结构 (1)规则表 filter 表 nat 表 mangle 表 raw 表 (2)规则链 2 数据包过滤的匹配流程 (1)规则表之间的顺序 (2)…...
【JavaWeb】详细讲解 HTTP 协议
文章目录 一、HTTP简介1.1 概念1.2 特点 二、协议2.1 HTTP-请求协议(1)GET方式(2)POST方式(3)GET和POST的区别: 2.2 HTTP-响应协议(1)格式(2)响应…...
非阻塞I/O操作
非阻塞I/O操作是一种I/O操作模式,在这种模式下,应用程序在发出I/O请求后不会立即等待操作完成,而是继续执行其他任务。当I/O操作完成或可以进行时,系统会通知应用程序。这种操作模式可以提高程序的效率和响应能力,因为…...