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

【kind管理脚本-1】便捷使用 kind 创建、删除、管理集群脚本

目录结构

.
├── cluster-demo-setting
│   ├── 3node-demo.yaml
│   └── ingress-cluster-demo.yaml
└── kind-tool.sh

简单使用

# 进入防止 kind-tool.sh 的目录
$ cd kt-dir/
# 用 alias 给个别名,更便于使用
$ alias kt="./kind-tool.sh"
# 创建单节点集群,此种默认采用最新版本镜像
$ kt create single-node-cluster
# 指定 k8s 镜像版本
$ kt create single-node-cluster --image kindest/node:v1.24.5
# 采用 默认版本(目前配置为  kindest/node:v1.24.3 )——  k8s 1.24.3 版本
$ kt create single-node-cluster --default# 查看目前配置的多节点集群模板
$ kt cds list
🔍 Listing all available templates:
- 3node-demo
- ingress-cluster-demo# 创建 3 节点的集群
$ kt create 3-node-cluster --image kindest/node:v1.24.3 --config 3node-demo# 查看当前所有集群
$ kt list# 删除集群
$ kt delete 3-node-cluster# 加载指定镜像到指定集群
$ kt load 3-node-cluster busybox:latest# 查看帮助信息
$ kt -h
Usage: ./kind-tool.sh [command] [options]
Commands:create <cluster-name> [--image <image>] [--config <template>] [--default]  Create a new Kind clustersub-args:--image <image>                   Create a cluster using the image you specified--config <template>               Template is used to configure the architecture of the cluster (multi node or port exposure)--default                         Create a cluster using the default image version (k8s 1.24.3)delete <cluster-name>                 Delete the Kind clusterexport-kubeconfig <cluster-name>      Export Kubeconfig for cluster, Short command(ek)load-image <cluster-name> <image>     Load Docker image into Kind cluster, Short command(load)status <cluster-name>                 Get cluster statuslist                                  List all existing Kind clustersuse <cluster-name>                    Switch to the specified Kind clustercluster-demo-setting <subcommand> [options]  Short command(cds for cluster-demo-setting)subcommands:list                              List all supported templatesshow <template-name>              Show the content of a specific templatehelp                                  Display this help message

脚本

#!/bin/bash# 配置
KUBECONFIG_PATH="./"
WITH_METRICS=false
WITH_INGRESS=false
LOAD_IMAGE=false
DEFAULT_IMAGE="kindest/node:v1.24.3"  # 默认镜像# 显示勾选或叉
checkmark="✅"
crossmark="❌"# 模板配置
TEMPLATES_DIR="cluster-demo-setting"
DEFAULT_TEMPLATE="ingress-cluster-demo"# 打印帮助信息
usage() {echo "Usage: $0 [command] [options]"echo "Commands:"echo "  create <cluster-name> [--image <image>] [--config <template>] [--default]  Create a new Kind cluster"echo "    sub-args:"echo "      --image <image>                   Create a cluster using the image you specified "echo "      --config <template>               Template is used to configure the architecture of the cluster (multi node or port exposure)"echo "      --default                         Create a cluster using the default image version (k8s 1.24.3)"echo "  delete <cluster-name>                 Delete the Kind cluster"echo "  export-kubeconfig <cluster-name>      Export Kubeconfig for cluster, Short command(ek)"echo "  load-image <cluster-name> <image>     Load Docker image into Kind cluster, Short command(load)"echo "  status <cluster-name>                 Get cluster status"echo "  list                                  List all existing Kind clusters"echo "  use <cluster-name>                    Switch to the specified Kind cluster"echo "  cluster-demo-setting <subcommand> [options]  Short command(cds for cluster-demo-setting)"echo "    subcommands:"echo "      list                              List all supported templates"echo "      show <template-name>              Show the content of a specific template"echo "  help                                  Display this help message"exit 1
}# 检查是否安装 kind 和 kubectl
command -v kind &>/dev/null || { echo "Kind is not installed!"; exit 1; }
command -v kubectl &>/dev/null || { echo "kubectl is not installed!"; exit 1; }# 打印命令并执行
run_command() {echo "-------- Command Info -------"echo "Executing: $1"echo "<-------- Command Result ------->"eval "$1"echo " "
}# 加载指定模板配置
load_template() {TEMPLATE_NAME=$1TEMPLATE_FILE="$TEMPLATES_DIR/$TEMPLATE_NAME.yaml"if [ ! -f "$TEMPLATE_FILE" ]; thenecho "Error: Template '$TEMPLATE_NAME' not found!"exit 1fiecho "#Using template '$TEMPLATE_NAME' from $TEMPLATE_FILE..."cat "$TEMPLATE_FILE"echo
}# 创建集群
create_cluster() {CLUSTER_NAME=$1IMAGE=TEMPLATE=shift # 移除第一个参数(集群名称)# 解析命令行参数while [[ "$#" -gt 0 ]]; docase $1 in--image) IMAGE="$2"; shift 2 ;;--config) TEMPLATE="$2"; shift 2 ;;--default) IMAGE=$DEFAULT_IMAGE; shift ;;*) echo "Unknown parameter: $1"; usage ;;esacdoneecho "🚀 Creating Kind cluster: $CLUSTER_NAME with image: $IMAGE and template: $TEMPLATE..."# 加载模板if [ -n "$TEMPLATE" ]; thenload_template "$TEMPLATE" > "$CLUSTER_NAME-kind-config.yaml"CONFIG="--config $(pwd)/$CLUSTER_NAME-kind-config.yaml"fi# 打印并执行创建集群命令if [ -n "$CONFIG" ] && [ -n "$IMAGE" ]; thenrun_command "kind create cluster --name \"$CLUSTER_NAME\" --image \"$IMAGE\" $CONFIG"elif [ -n "$CONFIG" ]; thenrun_command "kind create cluster --name \"$CLUSTER_NAME\" $CONFIG"elif [ -n "$IMAGE" ]; thenrun_command "kind create cluster --name \"$CLUSTER_NAME\" --image \"$IMAGE\""elserun_command "kind create cluster --name \"$CLUSTER_NAME\""fi# 如果需要安装 metrics-serverif $WITH_METRICS; thenecho "📊 Installing metrics-server..."run_command "kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml"fi# 如果需要安装 ingress-nginxif $WITH_INGRESS; thenecho "🌐 Installing ingress-nginx..."run_command "kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml"fiecho "✅ Cluster created successfully!"
}# 切换集群
use_cluster() {CLUSTER_NAME=$1echo "🔄 Switching to Kind cluster: $CLUSTER_NAME..."run_command "kubectl config use-context kind-$CLUSTER_NAME"echo "✅ Switched to $CLUSTER_NAME."
}# 导出 kubeconfig 文件
export_kubeconfig() {CLUSTER_NAME=$1echo "📤 Exporting kubeconfig to $KUBECONFIG_PATH..."# 打印并执行导出 kubeconfig 命令KUBECONFIG_FILE="./$CLUSTER_NAME-kubeconfig"run_command "kind get kubeconfig --name \"$CLUSTER_NAME\" > \"$KUBECONFIG_FILE\""echo "✅ Kubeconfig exported!"
}# 加载 Docker 镜像到 Kind 集群
load_image() {CLUSTER_NAME=$1IMAGE_TAG=$2echo "💾 Loading Docker image '$IMAGE_TAG' into Kind cluster '$CLUSTER_NAME'..."# 打印并执行加载镜像命令run_command "kind load docker-image \"$IMAGE_TAG\" --name \"$CLUSTER_NAME\""echo "✅ Image loaded successfully!"
}# 健康检查函数
health_check() {echo "🧠 Running health check for the cluster..."echo -n "🧩 Nodes reachable: "run_command "kubectl get nodes &>/dev/null && echo \"$checkmark\" || echo \"$crossmark\""echo -n "📈 Metrics-server running: "run_command "kubectl get deployment metrics-server -n kube-system &>/dev/null && echo \"$checkmark\" || echo \"$crossmark\""echo -n "🌐 Ingress controller running: "run_command "kubectl get pods -n ingress-nginx &>/dev/null && echo \"$checkmark\" || echo \"$crossmark\""echo -n "🧪 Demo app deployed: "run_command "kubectl get deploy demo &>/dev/null && echo \"$checkmark\" || echo \"$crossmark\""echo -n "🛰️ Ingress route configured: "run_command "kubectl get ingress demo-ingress &>/dev/null && echo \"$checkmark\" || echo \"$crossmark\""
}# 处理集群模板设置命令
cluster_demo_setting() {if [[ "$1" == "list" ]]; thenecho "🔍 Listing all available templates:"for template in "$TEMPLATES_DIR"/*.yaml; doecho "- $(basename "$template" .yaml)"doneelif [[ "$1" == "show" ]]; thenif [[ -z "$2" ]]; thenecho "Error: Template name is required!"exit 1fiload_template "$2"elseecho "Unknown subcommand: $1"usagefi
}# 集群命令执行
case "$1" in"create")if [ -z "$2" ]; thenecho "Cluster name is required!"usagefi# ${@:2} 表示从忽略第一个参数,传入其余所有参数create_cluster "${@:2}";;"list")echo "🔍 Listing all existing Kind clusters..."run_command "kind get clusters"run_command "kubectl config get-contexts"run_command "kubectl config current-context";;"delete")if [ -z "$2" ]; thenecho "Cluster name is required!"usagefiecho "🗑️ Deleting Kind cluster: $2..."run_command "kind delete cluster --name \"$2\"";;"status")if [ -z "$2" ]; thenecho "Cluster name is required!"usagefiecho "🔍 Checking cluster status..."run_command "kind get clusters | grep -q \"$2\" && echo \"$checkmark Cluster exists: $2\" || echo \"$crossmark Cluster does not exist.\"";;"use")if [ -z "$2" ]; thenecho "Cluster name is required to switch!"usagefiuse_cluster "$2";;"load"|"load-image")if [ -z "$2" ] || [ -z "$3" ]; thenecho "Both cluster name and image tag are required!"usagefiload_image "$2" "$3";;"ek"|"export-kubeconfig")if [ -z "$2" ]; thenecho "Cluster name is required!"usagefiexport_kubeconfig "$2";;"health-check")health_check;;"cds"|"cluster-demo-setting")cluster_demo_setting "${@:2}";;"-h"|"--help"|"help")usage;;*)usage;;
esac

集群模板目录

  • 脚本同级目录创建cluster-demo-setting 目录
  • 添加个简单的集群实例
# 添加文件 3node-demo.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:- role: control-plane- role: worker- role: worker

相关文章:

【kind管理脚本-1】便捷使用 kind 创建、删除、管理集群脚本

目录结构 . ├── cluster-demo-setting │ ├── 3node-demo.yaml │ └── ingress-cluster-demo.yaml └── kind-tool.sh简单使用 # 进入防止 kind-tool.sh 的目录 $ cd kt-dir/ # 用 alias 给个别名&#xff0c;更便于使用 $ alias kt"./kind-tool.sh"…...

Python-Django+vue仓库管理系统功能说明

❥(^_-) 上千个精美定制模板,各类成品Java、Python、PHP、Android毕设项目,欢迎咨询。 ❥(^_-) 程序开发、技术解答、代码讲解、文档,💖文末获取源码+数据库+文档💖 💖软件下载 | 实战案例 💖文章底部二维码,可以联系获取软件下载链接,及项目演示视频。 本项目…...

蓝桥备赛指南(14):树的直径与重心

树的直径 什么是树的直径&#xff1f;树的直径是树上最长的一条链&#xff0c;当然这条链并不唯一&#xff0c;所以一棵树可能有多条直径。直径由两个顶点u、v来决定&#xff0c;若由一条直径&#xff08;u,v)&#xff0c;则满足一下性质&#xff1a; 1&#xff09;u、v的度数…...

Java RPC 框架是什么

Java RPC 框架是什么 Java RPC 框架 是用于在分布式系统中实现远程过程调用&#xff08;Remote Procedure Call&#xff0c;RPC&#xff09;的工具集。RPC 是一种通信协议&#xff0c;它允许程序调用位于远程服务器上的函数或方法&#xff0c;就像调用本地函数一样透明。RPC 框…...

MySQL 查询重写怎样把复杂查询变简单,让查询提高一个“速”!

目录 一MySQL 查询重写基础概念 什么是查询重写 为什么需要查询重写 二MySQL 查询重写的工作原理 查询解析阶段 重写规则应用阶段 生成执行计划阶段 查询重写流程图 三MySQL 查询重写的实现方式 使用 MySQL 内置的查询优化器 自定义查询重写插件 查询重写介绍图 四…...

HTML静态网页成品作业(HTML+CSS)——阜阳剪纸介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…...

Docker Swarm集群搭建与管理全攻略

文章目录 一、节点准备二、初始化 manager 节点三、管理 swarm 集群中的 worker 节点1、添加 worker 节点2、查看 worker 节点3、删除 worker 节点 四、管理 swarm 集群服务1、创建服务2、查看服务3、删除服务 五、管理 swarm 节点服务1、节点标签管理2、创建服务3、查看服务4、…...

kafka消费延迟

一、背景 PAAS1220 CRM系统 系统版本: BC Linux For Euler release 21.10 二、故障现象 grafana上kafka指标&#xff1a;指标消费延迟过高 容器内部kafka消费情况&#xff1a;没有消费者进行消费 查看webgate页面&#xff1a;应用性能--信息总览&#xff0c;查看到实例全…...

Java学习笔记(多线程):ReentrantLock 源码分析

本文是自己的学习笔记&#xff0c;主要参考资料如下 JavaSE文档 1、AQS 概述1.1、锁的原理1.2、任务队列1.2.1、结点的状态变化 1.3、加锁和解锁的简单流程 2、ReentrantLock2.1、加锁源码分析2.1.1、tryAcquire()的具体实现2.1.2、acquirQueued()的具体实现2.1.3、tryLock的具…...

计算机视觉算法实战——实例分割算法深度解析

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 一、实例分割领域概述 实例分割(Instance Segmentation)是计算机视觉领域中的一个重要任务&#xff0c;它…...

ARM分拣机vs传统PLC:实测数据揭示的4倍效率差

在苏州某新能源汽车零部件仓库&#xff0c;凌晨3点的分拣线上依然灯火通明。8台搭载ARM Cortex-A72处理器的智能分拣机正在以每秒3件的速度处理着形状各异的电池包组件&#xff0c;它们通过MES系统接收订单信息&#xff0c;自主规划最优路径&#xff0c;将不同规格的零部件精准…...

IDEA 中遇到 Git Log 界面不显示问题的解决方案

IntelliJ IDEA 中遇到 Git Log 界面不显示问题的解决方案。以下是根据文章内容整理的解决步骤&#xff1a; (我清理 IDEA 缓存后成功解决&#xff09; 问题描述 在 IntelliJ IDEA 中&#xff0c;Git 的 Log 界面没有任何显示。其他选项和界面工作正常。使用命令行查询 Git 日…...

虚幻引擎UActorComponent的TickComponent详解

文章目录 前言一、TickComponent 的作用二、函数签名与参数三、 使用步骤1.启用 Tick2. 重写 TickComponent 四、实际示例&#xff1a;旋转组件4.1 头文件 URotatingComponent.h4.2 源文件 URotatingComponent.cpp4.3 使用组件 五、注意事项六、常见问题总结 前言 在虚幻引擎&…...

如何迁移 GitHub 仓库到 GitLab?

如何迁移 GitHub 仓库到 GitLab&#xff1f; 一、基础迁移方法&#xff08;保留完整历史&#xff09; 1.‌在 GitLab 创建空仓库 1.登录 GitLab 并新建项目&#xff0c;选择「空白项目」&#xff0c;‌不要初始化 README 或 LICENSE 文件 2.复制新建仓库的 HTTPS/SSH 地址&a…...

深入理解C++面向对象特性之一 多态

欢迎来到干货小仓库&#xff0c;堪比沙漠!!! 从“Hello World”到改变世界&#xff0c;中间隔着千万次再试一次. 1.多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c; 具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会 产生出不同的…...

linux下MMC_TEST的使用

一:打开如下配置,将相关文件编译到内核里: CONFIG_MMC_TEST CONFIG_MMC_DEBUG CONFIG_DEBUG_FS二:将mmc设备和mmc_test驱动进行绑定 2.1查看mmc设备编号 ls /sys/bus/mmc/drivers/mmcblk/mmc0:aaaa2.2将mmc设备与原先驱动进行解绑 echo mmc0:aaaa >...

数字人技术的核心:AI与动作捕捉的双引擎驱动(2/10)

摘要&#xff1a;数字人技术从静态建模迈向动态交互&#xff0c;AI与动作捕捉技术的深度融合推动其智能化发展。尽管面临表情僵硬、动作脱节、交互机械等技术瓶颈&#xff0c;但通过多模态融合技术、轻量化动捕方案等创新&#xff0c;数字人正逐步实现自然交互与情感表达。未来…...

Java Web从入门到精通:全面探索与实战(二)

Java Web从入门到精通&#xff1a;全面探索与实战&#xff08;一&#xff09;-CSDN博客 目录 四、Java Web 开发中的数据库操作&#xff1a;以 MySQL 为例 4.1 MySQL 数据库基础操作 4.2 JDBC 技术深度解析 4.3 数据库连接池的应用​ 五、Java Web 中的会话技术&#xff…...

从个人博客到电商中台:EdgeOne Pages的MCP Server弹性架构×DeepSeek多场景模板实测报告

什么是EdgeOne Pages&#xff1f; EdgeOne Pages 是腾讯云推出的一站式边缘开发与部署平台&#xff0c;基于全球边缘节点网络和 Serverless 架构&#xff0c;为开发者提供从代码托管到全球分发的全流程服务。其核心价值在于将边缘计算能力与现代 Web 开发范式深度融合&#xf…...

【C++】优先级队列+反向迭代器

priority_queue的介绍 通常用堆来实现&#xff0c;能在O(log n)的时间复杂度内插入和提取最高&#xff08;或最低&#xff09;优先级的元素。 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的(默认情况)。此…...

HOW - 缓存 React 自定义 hook 的所有返回值(包括函数)

目录 场景优化方案示例延伸例子&#xff1a;为什么这很重要&#xff1f;常见的请求 hook 封装优化前优化后优化点一览优化后的 useLoadData使用方式示例&#xff1a;优点回顾 场景 如果你写了一个自定义 Hook&#xff0c;比如 useMyHook()&#xff0c;它暴露出某些值或函数给外…...

AIDD-人工智能药物设计-网络药理学-多组学与网络药理学分析揭示龟龄集治疗少精症的机制

IF6.7|多组学与网络药理学分析揭示龟龄集治疗少精症的机制 2024年10月28日&#xff0c;海军军医大学张卫东教授团队在Phytomedicine&#xff08;IF6.7&#xff09;上发表了题为“Multi-omics and network pharmacology approaches reveal Gui-Ling-Ji alleviates oligoastheno…...

打破单一视角!融合红外和可见光,YOLO算法实现全天候无人机检测

目录 一、摘要 二、系统概述 三、数据集 视频记录 数据集标注 四、数据集分析 五、基于深度学习的无人机探测 基于规则的跟踪方法 六、结论 论文题目&#xff1a;Drone Detection and Tracking with YOLO and a Rule-based Method 论文链接&#xff1a;https://arxiv.…...

Go 语言数据类型

Go 语言数据类型 概述 Go 语言(也称为 Golang)是一种静态强类型、编译型、并发型、具有垃圾回收功能的编程语言。自2009年发布以来,Go 语言因其简洁的语法、高效的执行速度和强大的并发处理能力而广受欢迎。本文将详细介绍 Go 语言中的数据类型,帮助读者更好地理解和掌握…...

<tauri><rust><GUI>基于rust和tauri,将tauri程序打包为window系统可安装的安装包(exe、msi)

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 发文平台 CSDN 环境配置 系统:windows 10平台:visual studio code语言:rust、javascript库:taur…...

ragflow开启https访问:ssl证书为pem文件,window如何添加证书

在 Windows 系统中安装 PEM 格式的证书(通常用于 SSL/TLS 或客户端认证)可以通过以下步骤完成: 方法 1:通过证书管理器(MMC)安装 打开证书管理器 按 Win + R,输入 mmc 回车。点击菜单栏的 文件 > 添加/删除管理单元。选择 证书 > 添加,然后选择 计算机账户 或 当…...

自己搭建cesium应用程序

Cesium项目开发基础(1)——Cesium环境搭建_cesium版本怎么看-CSDN博客 看这篇的时候&#xff1a; 所以要用IIS搭建网站。下载一些东西看这篇的这部分&#xff1a;Tomcat IIS 在局域网中搭建网站&#xff08;最全最详细教程&#xff09;_tomcat iis-CSDN博客 然后在IIS里怎么…...

本地项目HTTPS访问问题解决方案

本地项目无法通过 HTTPS 访问的原因通常是默认配置未启用 HTTPS 或缺少有效的 SSL 证书。以下是详细解释和解决方案&#xff1a; 原因分析 默认开发服务器仅支持 HTTP 大多数本地开发工具&#xff08;如 Vite、Webpack、React 等&#xff09;默认启动的是 HTTP 服务器&#xff…...

软考系统架构设计师之物联网与边缘计算笔记

一、物联网与边缘计算的核心概念 1. 物联网&#xff08;IoT&#xff09; 定义&#xff1a;通过传感器、设备等物理对象接入网络&#xff0c;实现数据采集、传输与智能控制&#xff0c;核心在于物联设备互联与数据驱动决策。架构分层&#xff1a; 感知层&#xff1a;传感器、R…...

已知Word内容格式固定,通过宏实现Word转Excel

文章目录 需求描述一、宏是什么&#xff1f;二、使用步骤1.启用开发工具2.VBA基础知识3.单个Word文件转为Excel4.批量将Word文件转为Excel文件 总结 需求描述 现在有多个Word文档&#xff0c;Word文档格式固定&#xff0c;假如Word内容分为单选题和多选题&#xff0c;每个题目…...

window上 docker使用ros2开发并usbip共享usb设备

曾经参考 https://blog.csdn.net/laoxue123456/article/details/138339029 来共享windows上的usb 发现没有办法成功总是出现 tcp 错误。telnet测试能够正常连接 很是奇怪&#xff0c;window上换成低版本的usbipd仍然是同样的错误&#xff0c;没有办法的情况下参考了docker官方文…...

3D激光轮廓仪知识整理

文章目录 1.原理和应用场景1.1 相机原理1.1.1 测量原理1.1.2 相机激光器1.1.3 沙姆镜头1.1.4 相机标定1.1.5 中心线提取 1.2 应用场景1.2.1 测量相关应用1.2.2 缺陷检测相关应用 2.相机参数介绍及选型介绍2.1 成像原理2.2 原始图成像2.3 生成轮廓图2.4 相机规格参数2.4.1 单轮廓…...

SSH远程工具

一、常见SSH远程工具 工具开源跨平台多标签文件传输高级功能价格Xshell❌Win✔️✔️脚本、会话管理免费/商业版Tabby✔️全平台✔️✔️插件扩展免费MobaXterm❌Win✔️✔️集成工具集免费/付费SecureCRT❌Win/macOS/Linux✔️✔️企业级加密$129+PuTTY✔️全平台❌❌基础连接…...

C++day8

思维导图 牛客练习 练习 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory> using namespace std; class user{ public: …...

Vue响应式系统的简单实现

一、什么是副作用函数和响应式数据&#xff1f; 副作用函数&#xff1a; 可以产生副作用的函数&#xff0c;那么什么是副作用呢&#xff1f;举个栗子&#xff1a; let count 1function effect() {count }function fn() {if (count 1) {console.log(执行1)} else {console.l…...

超卖问题解决方案

目录 需求概述 系统需求 提升高并发吞吐量 解决超卖问题 解决方案分析 悲观锁与乐观锁 悲观锁 乐观锁 数据库行级锁 实现悲观锁&#xff08;排他锁&#xff09; 实现乐观锁 悲观锁&乐观锁 Redis分布式锁 Redis原子操作方案 方案分析 技术实现 通过MULTI事务…...

智享AI直播代理:零门槛掘金新风口

智享AI直播代理&#xff1a;零门槛掘金新风口 传统直播困局&#xff0c;AI破局而生 在电商与内容创业井喷的今天&#xff0c;传统直播模式却陷入“三高”泥潭——人力成本高、内容门槛高、运营风险高。一位主播单日直播超8小时即面临状态下滑&#xff0c;而多平台运营更需…...

在huggingface上制作小demo

在huggingface上制作小demo 今天好兄弟让我帮他搞一个模型&#xff0c;他有小样本的化学数据&#xff0c;想让我根据这些数据训练一个小模型&#xff0c;他想用这个模型预测一些值 最终我简单训练了一个小模型&#xff0c;起初想把这个模型和GUI界面打包成exe发给他&#xff0…...

Spring、Spring Boot和 Spring Cloud 的关系

Spring、Spring Boot和 Spring Cloud 的关系 Spring, Spring Boot 和 Spring Cloud 都是 Spring 生态系统中的重要组成部分&#xff0c;它们之间有紧密的关系&#xff0c;但各自有不同的定位和功能。下面是它们之间的关系和区别&#xff1a; 1、Spring Framework&#xff1a;…...

[蓝桥杯] 求和(C语言)

题目链接 P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 题目理解 这道题就是公式题&#xff0c;我们模拟出公式后&#xff0c;输出最终结果即可。 本题不难&#xff0c;相信很多同学第一次见到这道题都是直接暴力解题。 两个for循环&#xff0c;测试样例&#xff0c;直接拿下。 #in…...

从用户需求到产品迭代:Scrum 实践全流程详解

目录 前言1. 用户需求与产品待办列表的形成1.1 用户需求的来源与整理1.2 构建产品待办列表&#xff08;Product Backlog&#xff09; 2. 迭代计划与目标设定2.1 Sprint 的时间周期设定2.2 设定明确的 Sprint 目标 3. 开发执行与每日站会3.1 高效协作的开发过程3.2 每日站会&…...

windows10安装配置并使用Miniconda3

windows10安装配置并使用Miniconda3 Conda 与 Anaconda 的区别 Conda 是包管理和环境管理工具&#xff0c;Anaconda 在 Conda 的 基础上预装了大量科学计算包 Conda 与 pip 的区别 Conda 是跨语言的包和环境管理器&#xff08;支持 Python/R 等&#xff09;&#xff0c;能安…...

16-产品经理-需求的评审

在创建需求的时候&#xff0c;有一个"不需要评审"的复选框&#xff0c;如果选中该复选框的话&#xff0c;需求的创建成功后状态是激活的。 但大部分情况下面&#xff0c;需求还是需要评审的。 即使产品完全由一个人负责&#xff0c;也可以将一些不成熟的想法存为草…...

【java图形化界面编程】

文章目录 一、GUI简介二、Swing1.容器组件2. 布局管理器&#xff1a;BorderLayout3.代码实现 实验总结&#xff1a; 一、GUI简介 GUI&#xff1a;图形用户界面。通过图形用户界面&#xff0c;程序的输入输出可以脱离控制台JAVA中实现GUI主要使用3种技术&#xff1a;AMT&#x…...

BGP路由协议之属性1

公认属性是所有 BGP 路由器都必须能够识别的属性 公认必遵 (Well-known Mandatory) : 必须包括在每个 Update 消息里公认任意 (Well-known Discretionary) : 可能包括在某些 Update 消息里。 可选属性不需要都被 BGP 路由器所识别 可选过渡(OptionalTransitive) : BGP 设备不…...

架构思维: 数据一致性的两种场景深度解读

文章目录 Pre案例数据一致性问题的两种场景第一种场景&#xff1a;实时数据不一致不要紧&#xff0c;保证数据最终一致性就行第二种场景&#xff1a;必须保证实时一致性 最终一致性方案实时一致性方案TCC 模式Seata 中 AT 模式的自动回滚一阶段二阶段-回滚二阶段-提交 Pre 架构…...

压测工具开发实战篇(四)——client子窗口功能

你好&#xff0c;我是安然无虞。 文章目录 树控件添加文件补充学习: 函数定义中循环体里的局部变量补充学习: 动态添加对象属性 刷新文件上下文菜单 (右键菜单)实现右键菜单功能 编辑节点文本 在学习本篇文章之前, 建议先看一下上篇介绍MDI子窗口的文章: 压测工具开发实战篇(三…...

如何开发 HTML 游戏

开发 HTML 游戏适合初学者学习编程和游戏开发的基础知识。HTML 游戏通常结合了 HTML、CSS 和 JavaScript 技术&#xff0c;利用浏览器的渲染能力来实现交互式的游戏体验。 1. 确定游戏类型 在开始开发之前&#xff0c;你需要明确你的游戏类型。例如&#xff1a; 简单游戏&…...

机器学习 从入门到精通 day_01

1. 机器学习介绍与定义 1.1 机器学习定义 机器学习&#xff08;Machine Learning&#xff09;本质上就是让计算机自己在数据中学习规律&#xff0c;并根据所得到的规律对未来数据进行预测。 机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习&#xff08…...

React中的跨组件通信

在React中&#xff0c;跨组件通信有几种常见的方式。每种方式适用于不同的场景&#xff0c;下面是几种常见的跨组件通信方法&#xff1a; 1. 通过父子组件传递 Props 父组件可以通过 props 将数据传递给子组件&#xff0c;子组件只能接收和使用这些数据。 父组件&#xff08…...