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

揭秘 Fluss 架构组件

这是 Fluss 系列的第四篇文章了,我们先回顾一下前面三篇文章主要说了哪些内容。

  1. Fluss 部署,带领大家部署Fluss 环境,体验一下 Fluss 的功能
  2. Fluss 整合数据湖的操作,体验Fluss 与数据湖的结合
  3. 讲解了 Fluss、Kafka、Paimon 之间的区别和联系

前面三篇文章可以让大家上手玩起来 Fluss 这个框架,并说明了它与 Kafka、Paimon 数据湖的关系,接下来的文章

就深入 Fluss 细节来说一下它的实现原理了,今天给大家带来的是 Fluss 架构方法的知识。

Fluss 架构

Fluss 集群由两个主要进程组成:CoordinatorServer 和 TabletServer。

file

从上面的图片看 Fluss 是一个典型的主从架构,有Client、CoordinatorServer 、TabletServer等进程,我第一眼看到这个架构感觉就有点熟悉,这分区多副本和 Kafka 架构非常像。

下面我通过一条数据的生命周期的小故事给大家描述 Fluss 架构中这些服务组件的主要功能和工作流程。

1. 小数据的诞生(Client:我是从哪里来的?)

一个风和日丽的早晨,小数据“订单 1001”诞生了。它的妈妈是个电商用户小明,爸爸是一条代码(API)。小明通过 Fluss 的 App(Client)下了一单,内容如下:

订单号:1001,金额:4999 元,状态:待发货,时间:2024-12-25 09:00:00

在被创建的瞬间,小数据便穿过了网络,奔向 Fluss 的大门。它的梦想是被记录、管理、查询,甚至有朝一日成为运营分析的明星数据!


2. 走进总部大脑(CoordinatorServer:一个靠谱的“人生规划师”)

小数据“订单 1001”刚一到达 Fluss,就立刻被送到了 CoordinatorServer(总部控制中心),它可是 Fluss 的大脑!CoordinatorServer 一看到小数据,立刻开始规划它的未来,像极了一个靠谱的职业规划师:

  • 元数据登记:CoordinatorServer 先给小数据发了个“身份证”,记录了它的订单号、金额、状态和时间。
  • 分配节点:CoordinatorServer 仔细分析了一下,“东区分拣中心(TabletServer)”距离小明最近,于是决定把小数据送过去。
  • 资源平衡:东区最近有点忙,但 CoordinatorServer 坚信可以处理好这个订单,偶尔也会平衡任务给其他中心。

规划好这一切后,CoordinatorServer 给小数据指了条明路:“去吧,到东区分拣中心报道!”


3. 踏上分拣之旅(TabletServer:我在哪里存活?)

小数据一路风尘仆仆,终于来到了 东区分拣中心(TabletServer)。这里是 Fluss 的数据加工厂,专门负责记录、存储和查询小数据。

东区分拣中心一看到小数据,马上给它安排了两份档案:

  • LogStore(日志部门): LogStore 是个勤劳的“打工人”,专门记录小数据的每一步人生足迹:

    [时间:2024-12-25 09:00:00] 创建订单:订单号 1001,状态:待发货

    ​ 小数据兴奋极了:“我的人生从这里被记录下来啦!”

  • KvStore(仓库): KvStore 是分拣中心的“仓库管理员”,专门保存小数据的状态和内容,以备后续查询。KvStore 给小数据安排了个“货架”:

    货架位置:东区仓库 001,数据状态:待发货

​ “好耶!”小数据开心地在自己的货架上安顿下来。


4. 人生中的更新(LogStore + KvStore:我的状态变了!)

就在 9:30,小数据的人生迎来了第一个重要的“更新”。妈妈小明得到了快递信息:“您的订单已发货!”

于是,小数据的状态从“待发货”更新为“已发货”。分拣中心马上展开协作:

  1. LogStore 记录变更: LogStore 再次记录下小数据的人生足迹:

    [时间:2024-12-25 09:30:00] 更新状态:已发货
  2. KvStore 更新状态: KvStore 将仓库里的数据替换为最新状态:

    货架位置:东区仓库 001,数据状态:已发货

小数据感叹:“原来我的人生是可以改写的!”


5. 跨仓储的挑战(ZooKeeper:保持系统秩序)

东区分拣中心最近有点忙,有些数据开始超载。就在这时,Fluss 的 “通信协调员”(ZooKeeper)站了出来:“不用慌!一切有我协调。”

ZooKeeper 通知总部,将一部分数据任务转移到北区的分拣中心,以确保整个系统的平稳运行。小数据惊叹:“原来我有这么多后备选项!”


6. 历史的归宿(Remote Storage:成为数据档案)

随着时间的推移,越来越多的数据涌入东区分拣中心,小数据意识到它的时代要结束了。

为了让分拣中心有更多存储空间,小数据和它的伙伴们被转移到了 远程云存储(Remote Storage)。这就像是档案馆,它保存了所有历史数据。

“虽然我不再活跃,但我的人生还会被查阅!未来的人们可以分析我。”小数据在档案馆安然入眠。


7. 被召唤的高光时刻(查询 + 分析)

就在小数据以为自己会默默无闻地躺着时,突然,一条查询指令将它唤醒:

SELECT status FROM orders WHERE order_id = 1001;

系统快速检索:

  • LogStore 提供了变更日志,追踪它的所有历史记录。
  • KvStore 提供了最终的状态。

小数据以它的最新状态“已发货”再次出现在查询结果中:“原来,我一直在被需要!”

到了年底,Fluss 公司还通过批量分析指令:

SELECT SUM(amount) FROM orders WHERE year(order_time) = 2024;

运营团队惊喜地发现,小数据贡献了 4999 元销售额!“我成了分析中的重要一环!”


Fluss 小数据的一生
组件在故事中的角色功能
Client小数据的出生医院负责接收数据的输入。
CoordinatorServer职业规划师(总部控制中心)负责数据分配、元数据管理、故障恢复。
TabletServer分拣中心负责数据的存储和更新,提供高效查询。
LogStore日志记录员记录所有数据的变更历史,用于流式处理和追踪。
KvStore仓库管理员保存数据的最新状态,支持高效查询和修改。
ZooKeeper系统协调员保证整个系统有序运行,处理分配和调度。
Remote Storage数据档案馆保存历史数据,减轻分拣中心的压力。

专业解释

下面是 Fluss 架构里面这些进程的详细专业解释:

CoordinatorServer

CoordinatorServer 是集群的核心控制和管理组件,主要负责以下任务:

  • 元数据管理:维护元数据。
  • 节点分配管理:管理 Tablet 的分配和节点列表。
  • 权限管理:处理用户和服务权限。

此外,CoordinatorServer 负责以下关键操作:

  • 数据再平衡:在节点扩展或缩减时重新分配数据。
  • 数据迁移:当节点发生故障时,管理数据迁移和服务节点切换。
  • 表管理:创建或删除表,更新桶(Bucket)的数量。

CoordinatorServer 是整个集群的大脑,确保资源高效分配与无缝管理。


TabletServer

TabletServer 负责数据存储、持久化,并直接为用户提供 I/O 服务。它由以下两个关键组件组成:

  1. LogStore:用于存储日志数据,类似数据库的 binlog(变更日志)。
  2. KvStore:用于存储表数据,支持更新和删除。

不同表类型对应的行为:

  • 主键表(PrimaryKey Table):支持更新操作,使用 KvStore 存储表数据,并使用 LogStore 存储变更日志。
  • 日志表(Log Table):仅支持追加写入,主要依赖 LogStore 优化写入性能。

LogStore
  • 专为存储日志数据而设计,类似于数据库的 binlog。
  • 数据只能追加,不可修改,确保数据完整性。
  • 主要用于低延迟的流式读取,同时作为 KvStore 的预写日志(WAL)。

KvStore
  • 用于存储表格化数据,支持高效的查询、更新和删除操作。
  • 生成完整的变更日志以追踪数据修改。
  • 适用于需要频繁数据操作的场景。

Tablet / Bucket
  • 数据根据桶策略分为多个桶(Bucket)。
  • 每个 Tablet 包含 LogTablet 和(可选的)KvTablet,具体取决于表是否支持更新。
  • Tablet 通过复制(Replication)机制确保高可用性。
  • 注意:目前,KvTablet 不支持复制。

ZooKeeper
  • Fluss 当前使用 ZooKeeper 进行集群协调、元数据存储和配置管理。
  • 未来版本中,计划用 KvStore 替代 ZooKeeper 的元数据存储功能,并使用 Raft 协议实现集群协调和一致性。

远程存储(Remote Storage)

远程存储主要有两个用途:

  1. 分层存储(LogStores):
    • 减少 LogStore 数据的存储成本。
    • 加速扩展操作。
  1. 持久化存储(KvStores):
    • 为 KvStore 提供持久化存储。
    • 与 LogStore 协作,实现故障恢复。

未来计划支持批量写入操作,优化数据导入流程并提高性能。


客户端(Client)

Fluss 提供的客户端/SDK 支持以下操作:

  • 流式读写
  • 批量读写
  • 数据定义语言(DDL)操作
  • 主键点查(Point Queries)

目前,主要的客户端实现是 Flink Connector,用户可以通过 Flink SQL 轻松操作 Fluss 的表和数据。

写在最后

这篇文章说了Fluss 架构中的服务组件的职能和工作流程,后面会对 Fluss 查询数据湖和本地数据合并部分做讲解。欢迎大家关注 "大圣数据星球"一起来讨论大数据技术。

本文由博客一文多发平台 OpenWrite 发布!

相关文章:

揭秘 Fluss 架构组件

这是 Fluss 系列的第四篇文章了,我们先回顾一下前面三篇文章主要说了哪些内容。 Fluss 部署,带领大家部署Fluss 环境,体验一下 Fluss 的功能Fluss 整合数据湖的操作,体验Fluss 与数据湖的结合讲解了 Fluss、Kafka、Paimon 之间的…...

你了解DNS吗?

你了解DNS吗? 一. 介绍二. DNS的工作原理三. DNS查询流程示意图四. DNS 记录类型五. DNS的安全问题与 DNSSEC 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 介绍 …...

pyinstaller打包exe可执行文件

cd命令符进入要打包文件路径下,执行: 1.打包单个py文件,在控制台执行;dist下会生成2个文件,一个是exe文件 pyinstaller -D happy.py (cd命令符进入要打包文件路径下,执行) 打包单个py文件,在控制台执行;…...

leetcode108:将有序数组转化为二叉搜索树

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确…...

rust学习-初识rust

rust学习-初识rust 什么是 Rust?Rust 的特点什么是 Cargo?Cargo 的主要功能使用 Cargo 创建和管理项目Cargo.toml 文件详解常用 Cargo 命令什么是 Rustup?Rustup 的主要功能安装 Rustup验证安装使用 Rustup 管理工具链使用 Rustup 管理目标平…...

word怎么添加链接,点击直接到参考文献

word怎么添加链接,点击直接到参考文献 有时候并不一定非得latex https://download.csdn.net/download/qq_38998213/90199214 在Word中添加点击可直接跳转到参考文献的链接,主要有以下两种方法: 使用交叉引用和超链接结合的方法 插入参考文献: 首先,在文档中需要插入参考…...

数字赋能:制造企业如何靠“数字能力”实现可持续“超车”?

如今,制造业数字化转型可是个热门话题,全球都在积极推进。我国更是出台了一系列给力的政策来助力制造业数字化转型,像《中国制造 2025》就明确提出要加快制造业数字化、网络化、智能化发展,各省市也纷纷响应,从资金、税…...

C++——deque的了解和使用

目录 引言 标准库中的deque 一、deque的基本概念 二、deque的常用接口 1.deque的迭代器 2.deque的初始化 3.deque的容量操作 3.1 有效长度和容量大小 3.2 有效长度和容量操作 4.deque的访问操作 5.deque的修改操作 三、deque的应用场景 结束语 引言 在C中&#x…...

vue使用el-select下拉框自定义复选框

在 Vue 开发中,高效且美观的组件能极大地提升用户体验和开发效率。在vue中使用elementplus 的 el-select下拉框实现了一个自定义的多选下拉框组件。 一、代码功能概述 这段代码创建了一个可多选的下拉框组件,通过el-select和el-checkbox-group结合的方…...

《探秘开源大模型:AI 世界的“超级引擎”》

《探秘开源大模型:AI 世界的“超级引擎”》 一、开源大模型崛起之路二、开源大模型发展历程回顾(一)早期奠基:理论突破与初步实践(二)快速发展:百花齐放的模型格局(三)当下态势:走向成熟与多元融合三、开源大模型核心技术剖析(一)Transformer 架构:基石之稳(二)…...

浏览器跨域原因及解决方式

一、为什么会有跨域 浏览器的同源策略 用于限制一个源的文档或它所加载的脚本如何能与另一个源交互。 它能帮助阻隔恶意文档,减少可能被攻击的媒介 二、什么是同源 两个url,只要它们的协议、域名、端口有一个不相同,就会导致跨域&#xf…...

如何解决Eigen和CUDA版本不匹配引起的错误math_functions.hpp: No such file or directory

Apollo9针对RTX40的docker环境里的Eigen库版本是3.3.4,CUDA是11.8: 编译我们自己封装模型的某些component代码时没问题,编译一个封装occ模型的component代码时始终报错: In file included from /usr/include/eigen3/Eigen/Geometry:11:0, …...

[服务器][教程]Ubuntu24.04 Server开机自动挂载硬盘教程

1. 查看硬盘ID ls -l /dev/disk/by-uuid可以看到对应的UUID所对应的分区 2. 创建挂载文件夹 创建好文件夹即可 3. 修改配置文件 sudo vim /etc/fstab把对应的UUID和创建的挂载目录对应即可 其中# Personal mount points下面的是自己新添加的 :分区定位&#xff…...

idea项目导入gitee 码云

1、安装gitee插件 IDEA 码云插件已由 gitosc 更名为 gitee。 1 在码云平台帮助文档http://git.mydoc.io/?t153739上介绍的很清楚,推荐前两种方法, 搜索码云插件的时候记得名字是gitee,gitosc已经搜不到了。 2、使用码云托管项目 如果之…...

前端页面展示本电脑的摄像头,并使用js获取摄像头列表

可以通过 JavaScript 使用 navigator.mediaDevices.enumerateDevices() 获取电脑上的摄像头列表。以下是一个示例代码&#xff0c;可以展示摄像头列表并选择进行预览。 HTML JavaScript 实现摄像头列表展示和预览 <!DOCTYPE html> <html lang"zh-CN">…...

小米自研vela系统kvdb数据库的使用(一)

KVDB数据库介绍 KVDB 数据库详细介绍KVDB 的基本原理 KVDB 的应用场景1. 缓存系统2. 配置管理3. 会话存储与用户状态管理4. 实时数据处理5. 日志记录与事件存储6. 分布式存储 KVDB 的作用KVDB 数据库的典型实现1. LevelDB2. RocksDB3. LMDB (Lightning Memory-Mapped Database)…...

Python 中的 `iter` 函数

因为在jax的代码接触了这个函数&#xff0c;不是很熟悉&#xff0c;每次看见名字只知道是迭代但是不知道是怎么迭代&#xff0c;因此写下以下笔记提醒自己。 def iter(source, sentinelNone): # known special case of iter"""iter(iterable) -> iteratorit…...

【AIGC】电话录音转文字实践:基于Google Cloud Speech-to-Text-v1的技术方案Python

引言 在当今数字化时代&#xff0c;将语音内容转换为文字已经成为一个非常重要的技术需求。无论是客服通话记录、会议纪要&#xff0c;还是电话采访内容&#xff0c;高效准确的语音转文字服务都能大大提升工作效率。本文将详细介绍如何利用Google Cloud Speech-to-Text服务实现…...

《AI赋能自由职业:开启竞争力提升新征程》

在当今数字化时代&#xff0c;AI技术为自由职业者带来了前所未有的机遇&#xff0c;使其能够在激烈的市场竞争中脱颖而出。以下是自由职业者借助AI提升自身竞争力的几种方法。 利用AI优化工作流程&#xff0c;提高效率 自动化任务处理&#xff1a;自由职业者可以借助自动化工具…...

学习vue3的笔记

一、vue和react的对比 1、基础介绍 vue&#xff1a;https://cn.vuejs.org/ vue3是2020年创建的 react&#xff1a;https://react.dev/ react是一个2013年开源的JavaScript库&#xff0c;严格意义上来说不是一个框架 2、diff算法 两个框架采用的都是同级对比策略 两节点对…...

为什么要用ZGC

一、为什么要用 ZGC 问题 我们有个“智慧园区”的项目,我们的下游系统“交叉带”[硬件系统]要求我们服务 60ms内返回结果&#xff0c;并且可用性要达到 99.99%。当时使用的是 G1垃圾回收器&#xff0c;单次 Young GC 40ms&#xff0c;一分钟10次&#xff0c;接口平均响应时间…...

rm误删掉的文件夹/文件如何恢复

Linux环境rm不小心误删掉文件/文件夹如何安全恢复&#xff0c;推荐tool&#xff1a;ext4magic(ext4 or ext3)&#xff0c;大家如果遇到误删的&#xff0c;希望可以帮到你。 误删了&#xff0c;最好要保留现场&#xff0c;如果能umout当前分区最好&#xff0c;不要在当前磁盘分…...

uniapp - 小程序实现摄像头拍照 + 水印绘制 + 反转摄像头 + 拍之前显示时间+地点 + 图片上传到阿里云服务器

前言 uniapp&#xff0c;碰到新需求&#xff0c;反转摄像头&#xff0c;需要在打卡的时候对上传图片加上水印&#xff0c;拍照前就显示当前时间日期地点&#xff0c;拍摄后在呈现刚才拍摄的图加上水印&#xff0c;最好还需要将图片上传到阿里云。 声明 水印部分代码是借鉴的…...

南方电网场景中 Agent 的智慧赋能与创新实践(15/30)

一、南方电网的数字化变革浪潮 在当今时代&#xff0c;能源领域正经历着深刻的变革&#xff0c;南方电网作为我国电力供应的重要支柱&#xff0c;面临着诸多挑战与机遇。随着经济的快速发展&#xff0c;用电需求持续攀升&#xff0c;电力负荷峰谷差日益增大&#xff0c;给电网的…...

rk3399增加新分区和计算规则

如果想要添加一个新的分区&#xff0c;例如添加名为"userdata"的分区&#xff0c;大小为&#xff0c;除了预留6G的system文件系统根目录分区&#xff08;我这里是rootfs分区&#xff09;&#xff0c;剩下的空间全部给userdata。 需要首先确定这个分区的起始地址。这个…...

风力涡轮机缺陷检测数据集,86.6%准确识别率,11921张图片,支持yolo,PASICAL VOC XML,COCO JSON格式的标注

风力涡轮机缺陷检测数据集&#xff0c;86.6&#xff05;准确识别率&#xff0c;11921张图片&#xff0c;支持yolo&#xff0c;PASICAL VOC XML&#xff0c;COCO JSON格式的标注 数据集下载 yolov11&#xff1a; https://download.csdn.net/download/pbymw8iwm/90206849 yolov…...

计算机网络-L2TP VPN基础实验配置

一、概述 上次大概了解了L2TP的基本原理和使用场景&#xff0c;今天来模拟一个小实验&#xff0c;使用Ensp的网卡桥接到本地电脑试下L2TP拨号&#xff0c;今天主要使用标准的L2TP&#xff0c;其实在这个基础上可以加上IPSec进行加密&#xff0c;提高安全性。 网络拓扑 拓扑说明…...

QT集成IntelRealSense双目摄像头2,集成OpenGL

上一篇文章写了如何把IntelRealSense摄像头的SDK集成到QT项目&#xff0c;并成功采集数据&#xff0c;在没有用OpenCV的情况下完成色彩数据&#xff0c;以及深度数据的显示。 具体地址&#xff1a;https://blog.csdn.net/qujia121qu/article/details/144734163 本次主要写如何…...

MySQL数据库——索引结构之B+树

本文先介绍数据结构中树的演化过程&#xff0c;之后介绍为什么MySQL数据库选择了B树作为索引结构。 文章目录 树的演化为什么其他树结构不行&#xff1f;为什么不使用二叉查找树&#xff08;BST&#xff09;&#xff1f;为什么不使用平衡二叉树&#xff08;AVL树&#xff09;&a…...

基于SpringBoot+Vue的旅游推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

HTML——20 自定义属性

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>自定义属性</title></head><body><a href"https://ai.m.taobao.com" 自定义属性"属性值">淘宝网</a><a href"h…...

Java Day1回顾简介-----变量命名规则

Java 简介、开发环境配置 菜鸟教程 编译运行 javac HelloWorld.java java HelloWorld Hello World public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");} }JAVA基础语法 类、对象、方法、实例、变量 对象&a…...

【Rust自学】8.2. Vector + Enum的应用

8.2.0. 本章内容 第八章主要讲的是Rust中常见的集合。Rust中提供了很多集合类型的数据结构&#xff0c;这些集合可以包含很多值。但是第八章所讲的集合与数组和元组有所不同。 第八章中的集合是存储在堆内存上而非栈内存上的&#xff0c;这也意味着这些集合的数据大小无需在编…...

机器算法之逻辑回归(Logistic Regression)详解

一、什么是逻辑回归&#xff1f; 逻辑回归并不是传统意义上的回归分析&#xff0c;而是一种用于处理二分类问题的线性模型。它通过计算样本属于某一类别的概率来进行分类&#xff0c;尽管名字中有“回归”二字&#xff0c;但它实际上是一种分类算法。简单来说&#xff0c;逻辑…...

UE5材质节点VertexNormalWs/PixelNormalWS

VertexNormalWs顶点法线方向&#xff0c;此节点可以做物体上积雪、青苔等效果 PixelNormalWS像素法线方向...

NPM组件包 vant部分版本内嵌挖矿代码

Vant 是一个轻量、可定制的移动端组件库&#xff0c;于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 Vant 2 版本&#xff1a;https://vant-ui.github.io/vant/v2/#/zh-CN/home V…...

通过 Ansys Electronics Desktop 中的高级仿真优化 IC 设计

半导体行业继续通过日益复杂的集成电路 (IC) 设计突破技术界限。随着工艺节点缩小和电路密度达到前所未有的水平&#xff0c;电磁效应对设备性能和可靠性变得越来越重要。现代 IC 设计面临着来自复杂的布局相关耦合机制、信号完整性问题和功率分布问题的挑战&#xff0c;这些问…...

【Android】application@label 属性属性冲突报错

错误记录 What went wrong: Execution failed for task :app:processDebugMainManifest. > Manifest merger failed : Attribute applicationlabel value(string/app_name) from AndroidManifest.xml:8:9-41is also present at [:abslibrary] AndroidManifest.xml:25:9-47 v…...

如何恢复永久删除的PPT文件?查看数据恢复教程!

可以恢复永久删除的PPT文件吗&#xff1f; Microsoft PowerPoint应用程序是一种应用广泛的演示程序&#xff0c;在人们的日常生活中经常使用。商人、官员、学生等在学习和工作中会使用PowerPoint做报告和演示。PowerPoint在人们的学习和工作生活中占主导地位&#xff0c;每天都…...

露营小程序搭建有哪些步骤?小程序里面可以找个露营搭子

露营不仅仅是走进大自然的旅程&#xff0c;它也成为了一种社交和体验式的活动。随着小程序的普及&#xff0c;露营活动也越来越多地开始在线上开展。通过搭建一个露营小程序&#xff0c;商家不仅可以为用户提供更多的露营选择&#xff0c;还可以帮助他们找到合适的露营搭子。那…...

python小项目:使用多剪贴板自动回复消息

使用多剪贴板自动回复消息 一、效果展示二、实现步骤2.1 编写python脚本2.2 批处理脚本2.3 运行脚本 三、用到知识3.1 sys.argv3.2 pyperclip3.2.1 主要功能3.2.2 跨平台支持3.2.3 安装方法3.2.4 基本用法3.2.5 高级用法3.2.6 注意事项 一、效果展示 说明&#xff1a;在windows…...

http性能测试命令ab

华子目录 使用方法常用选项示例输出解读注意事项 在 Linux系统中&#xff0c; ab&#xff08; ApacheBench&#xff09;是一个用于 测试HTTP服务器性能的 工具。它是 Apache HTTP服务器项目的 一部分&#xff0c;专门设计用来模拟 多个用户对 服务器发起 并发请求&am…...

C 实现植物大战僵尸(四)

C 实现植物大战僵尸&#xff08;四&#xff09; C 实现植物大战僵尸&#xff0c;完结撒花&#xff08;还有个音频稍卡顿的性能问题&#xff0c;待有空优化解决&#xff09;。目前基本的功能模块已经搭建好了&#xff0c;感兴趣的友友可自行尝试编写后续游戏内容 因为 C 站不能…...

GitHub Fork 和 Clone 的深度指南:操作解析与 Pull Request 完整流程20241231

GitHub Fork 和 Clone 的深度指南&#xff1a;操作解析与 Pull Request 完整流程 快速导航 引言Fork 与 Clone 概念对比完整开发流程Pull Request 最佳实践常见问题与解决方案最佳实践建议实战案例 引言 在开发者的协作世界中&#xff0c;GitHub 就像一座桥梁&#xff0c;连…...

hypothesis testing

p 值、t 值、显著水平值的意义 在统计学中&#xff0c;p 值、t 值和显著水平值 ( α (\alpha (α)是常用的概念&#xff0c;用于判断研究数据是否支持某个假设。以下是它们的定义、意义和相互关系。 1. p 值 定义 p 值是指在假设原假设 ( H 0 H_0 H0​) 为真的前提下&#x…...

解決當前IP地址僅適用於本地網路

想要解決“當前IP地址僅適用於本地網路”其實並不困難。本篇文章將介紹其發生的原因以及如何解決。 “僅限本地網路”是什麼意思&#xff1f; 當IP地址為“僅限本地網路”時&#xff0c;意味著設備正在使用私人網路內部IP地址&#xff0c;但無法連接到互聯網。如果將本地IP視…...

一个最简单的ios程序(object_c)的编写

前言 如何在苹果系统MacOS创建一个简单的ios&#xff08;iphone&#xff09;程序&#xff0c;貌似非常的简单。但是&#xff0c;作为习惯了Windows开发的程序员来说&#xff0c;有时候还觉得有点麻烦&#xff0c;至少开始有点很不习惯。 本博文试着把这个过程展现一下&#xff…...

HTML5实现好看的新年春节元旦网站源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 新年由来界面1.3 文章详细界面1.4 登录界面1.5 注册界面1.6 新年图册界面1.7 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的新年春节元旦网站源码&#xff0c;春节新…...

NLP模型工程化部署

文章目录 一、理论-微服务、测试与GPU1&#xff09;微服务架构2&#xff09;代码测试3&#xff09;GPU使用 二、实践-封装微服务&#xff0c;编写测试用例和脚本&#xff0c;并观察GPU1&#xff09;微服务封装(RestFul和RPC)①RestFul接口②RPC接口 2&#xff09;测试编写(unit…...

git时常混淆的操作的笔记

git时常混淆的操作的笔记 写在前面git rebase与merge的不同git am 与git apply的不同删除远端分支 写在前面 离开OS公司后&#xff0c;git的使用不再那么频繁。许多指令&#xff0c;时常忘记&#xff0c;这里作一点笔记。 git rebase与merge的不同 首先&#xff0c;这二者的…...