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

k8s中资源的介绍及标准资源namespaces实践

文章目录

  • 第1章 k8s中的资源(resources)介绍
    • 1.1 k8s中资源(resouces)的分类
    • 1.2 k8s中资源(resources)的级别
    • 1.3 k8s中资源(resources)的API规范
    • 1.4 k8s中资源(resources)的manifests
  • 第2章 k8s中的标准资源之namespaces的实践
    • 2.1 基本介绍
    • 2.2 编写相关ns资源对象的manifests
    • 2.3 应用相关ns资源对象的manifests
    • 2.4 列出相关ns资源对象
    • 2.5 ns资源对象的name
    • 2.6 ns资源对象的labels
    • 2.7 列出ns资源对象所包含非namespace资源对象
    • 2.8 ns资源对象的删除
  • 第3章 基于ns资源对象实践理解Label的管理

第1章 k8s中的资源(resources)介绍

1.1 k8s中资源(resouces)的分类

我们用 kubectl api-resources 可看到其 kubernetes 中的所有资源(当然kubectl所用的kubeconfig所承载的帐户得具备超级权限)。

root@master01:~# kubectl api-resources | head -4   # 只取了前4行
NAME                 SHORTNAMES  APIVERSION NAMESPACED   KIND
bindings                         v1         true         Binding
componentstatuses    cs          v1         false        ComponentStatus
configmaps           cm          v1         true         ConfigMap

这些资源可分为标准资源(安装好kubernetes后就有)、非标准资源(扩展kubernetes后才有),我们可用 kubectl get crd 看到有哪些非标准资源,其结果 NAME 字段对应值以点号"."分隔的第一列就是其资源的name。

root@master01:~# kubectl get crd | head -4        # 只取了前4行
NAME                                         CREATED AT
analysisruns.argoproj.io                     2025-04-23T02:32:30Z
analysistemplates.argoproj.io                2025-04-23T02:32:30Z
applications.argoproj.io                     2025-04-19T17:46:46Z
root@master01:~#
root@master01:~# kubectl api-resources | grep -w applications
applications       app,apps     argoproj.io/v1alpha1     true   Application

1.2 k8s中资源(resources)的级别

不管是标准资源、非标准资源,它们要么是namespace级别、非namespace级别(也称cluster级别)。可从 kubectl api-resources 结果的 NAMESPACE字段中看到,也可用 kubectl api-resources --namespaced=true/false 列出所有namespace级别或非namespace级别的资源

## kubectl工具看某个资源属于什么级别
root@master01:~# kubectl api-resources  | grep -w Namespace 
namespaces   ns   v1    false        Namespace    # <== false表示 非namespace级别
root@master01:~# 
root@master01:~# kubectl api-resources | grep -w Pod
pods        po    v1    true         Pod          # <== true表示 namespace级别## kuectl工具列出所有namespace级别或所有非namespace级别的资源
kubectl api-resources --namespaced=true 
kubectl api-resources --namespaced=false

注意:namespace级别的资源其实例化出来的对象得放在已存在的ns资源对象(由Kind为Namespace的资源namespaces实例化出来的)中。

1.3 k8s中资源(resources)的API规范

我们可用以下方法获取标准资源、非标准资源类的某资源其API规范中有哪些一级字段。

## 参考
root@master01:~# kubectl api-resources | head -1
NAME        SHORTNAMES       APIVERSION     NAMESPACED      KIND## 规范的
# <== 格式
kubectl explain --api-version='<APIVERSION>' <KIND># <== 例如
kubectl explain --api-version='v1' Pod## 简化的
# <== 格式
kubectl explain  <KIND># <== 例如
kubectl explain  Pod

标准资源、非标准资源其API规范一定会有apiVersion、kind、metadata这三个一级字段,在编写其对象的manifests是得写上。
大多数资源其API规范中有spec这个一级字段,用于定义期望状态,在编写其对象的manifests时得写上。
标准资源、非标准资源的API规范一定会有status这个一级字段,在编写其对象的manifests时不用写。当对象创建后其status是由其spec转换而来(期望状态转换成实际状态)。
我们也可以查看某资源其API规范中一级字段下有哪些二级字段,二级字段有哪些三级字段。如下所示。

## 规范的
kubectl explain --api-version='<APIVERSION>' <KIND>                       # 可看到有哪些一级字段
kubectl explain --api-version='<APIVERSION>' <KIND>.某一级字段             # 可看到有哪些二级字段
kubectl explain --api-version='<APIVERSION>' <KIND>.某一级字段.某二级字段   # 可看到有哪些三级字段 ## 简化的
kubectl explain                              <KIND>                       # 可看到有哪些一级字段
kubectl explain                              <KIND>.某一级字段             # 可看到有哪些二级字段
kubectl explain                              <KIND>.某一级字段.某二级字段   # 可看到有哪些三级字段 

前面提到

namespace级别的资源其实例化出来的对象得放在某ns资源对象(由Kind为Namespace的资源namespaces实例化出来)中。

那么所以

namespace级别的资源其API规范中metadata字段下的namespace字段,在编写manifests时得指定。
非namespace级别的资源其API规范中metadata字段下的namespace字段,在编写manifests时不用指定,指定也没用的。

# namespace级别的资源其API规范中metadata字段下的namespace字段,在编写manifests时得指定。
root@master01:~# kubectl explain Pod.metadata.namespace         # 在编写manifests时得指定# 非namespace级别的资源其API规范中metadata一级字段下的namespace字段,在编写manifests时不用指定,指定也没用的。
root@master01:~# kubectl explain Namespace.metadata.namespace   # 在编写manifests时不用指定

1.4 k8s中资源(resources)的manifests

资源实例化出对象

可以使用kubectl工具在命令行直接创建(默认只支持使用相应的标准资源),但这种方式不推荐(若要在线修改呢、若被删除了且在没备份的情况下你如何快速恢复呢)。
也可以根据其API规范编写manifests,其manifests可以放在一个文件中,这个文件中可以存在多个不同类型的资源对象的manifests,得用三个横杠(—)独占一行进行分隔,这个文件中的内容其格式要么是json/yaml,其文件的扩展名也得是json/yaml,推荐内容格式为yaml,文件扩展名为yaml,易于人类可读。最后可用kubectl apply -f /path/xxx.yaml -f /path/yyy.yaml 或 cd /path/ && kubectl apply -f . 或 kubectl apply -f /path/ 进行应用(不存在就创建,存在就更新其差异的,有些字段是不可在线更新的)
在版书时可用 “资源类型或资源name/所实例化出对象的name”来表示一个对象,如下所示

# 以下表示的是同一个对象
Namespace/a   等于  namespaces/a

前面提到

标准资源、非标准资源都有namespace级别、非namespace级别(也称cluster级别),均有一级字段之metadata字段,而metadata字段下的name字段是必须指定的。

那么所以

非namespace级别的某资源所实例化出来的对象不允许重名,不同资源间所实例化出来的对象是允许重名的。如下所示:

Namespace/a#      # 若存在#   kubectl工具命令行再创建Namespace/a,不允许,直接报错。#   kubectl工具apply -f Namespace/a <其manifests所在的文件>,其实是#       更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)#   
PersistentVolume/a   # # 若存在#   kubectl工具命令行再创建PersistentVolume/a,不允许,直接报错。#   kubectl工具apply -f PersistentVolume/a <其manifests所在的文件>,其实是#      更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)# 

namespace级别的某资源所实例化出来的对象不能在所指定 ns 中与现有某资源对象重名,可与非指定ns中现有某资源对象重名。

Namespace/a 对象中Deployment/a # 若存在#   kubectl工具命令行再创建Deployment/a,不允许,直接报错。#   kubectl工具apply -f Deployment/a <其manifests所在的文件>,其实是#       更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)#   Service/a# 若存在#   kubectl工具命令行再创建Service/a,不允许,直接报错。#   kubectl工具apply -f Service/a <其manifests所在的文件>,其实是#       更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)#   Namespace/b 对象中Deployment/a## 若存在,跟 Namespace/a 中的 Deployment/a 没有任何关系#   kubectl工具命令行再创建Deployment/a,不允许,直接报错。#   kubectl工具apply -f Deployment/a <其manifests所在的文件>,其实是#       更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)#  Service/a## 若存在,跟 Namespace/a 中的  Service/a 没有任何关系#   kubectl工具命令行再创建Service/a,不允许,直接报错。#   kubectl工具apply -f Service/a <其manifests所在的文件>,其实是#       更新(有些字段是不允许更新的,例如metadata.name,有些字段更新后的影响你得心中有数)#   

第2章 k8s中的标准资源之namespaces的实践

2.1 基本介绍

namespaces资源(简写ns)是kubernetes中的标准资源,属于非namespace级别,其实例化出来的对象用于逻辑存放namespace级别资源所实例化出来的对象。
当ns资源对象被删除后,其里面所包含的非namespace级别资源所实例化出来的对象也会被删除。得小心哦。

2.2 编写相关ns资源对象的manifests

我们应该让各ns资源对象的manifests独占一个文件。因为在删除资源对象时可以使用kubectl delete -f <文件> 来删除,当ns资源对象被删除后,其里面所包含的非namespace级别资源所实例化出来的对象也会被删除。

ns/dev-wyc对象的manifests,手动编写

cat >./ns_dev-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: dev-wyclabels:env: dev proj: wyc
EOF

ns/test-wyc对象的manifests,手动编写

cat >./ns_test-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: test-wyclabels:env: testproj: wyc
EOF

ns/prod-wyc对象的manifests,手动编写

cat >./ns_prod-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: prod-wyclabels:env: prodproj: wyc
EOF

ns/uat-wyc对象的manifests,kubectl工具快速生成

kubectl create namespace uat-wyc --dry-run=client -o yaml >./ns_uat-wyc.yaml
ls -l ./ns_uat-wyc.yaml## 命令行快速生成ns资源对象的manifests,并保存于一个文件中。# 命令行无法指定ns/uat-wyc对象的相应label(不是必须的,可命令行添加,也可编辑文件后并保存)。# PS:我这里没有修改,主要是与后面的步骤有关联#

2.3 应用相关ns资源对象的manifests

应用ns_dev-wyc.yaml这个manifests

# -->检查语法
kubectl apply -f ./ns_dev-wyc.yaml --dry-run=client
# -->应用manifests
kubectl apply -f ./ns_dev-wyc.yaml
# -->列出manifests中的相关资源对象
kubectl get   -f ./ns_dev-wyc.yaml
# -->列出ns/dev-wyc对象
kubectl get   ns/dev-wyc
# -->列出所有的ns资源对象,并根据labels过滤,且显示所有labels
kubectl get   ns -l kubernetes.io/metadata.name=dev-wyc --show-labels

应用ns_test-wyc.yaml这个manifests

kubectl apply -f ./ns_test-wyc.yaml --dry-run=client
kubectl apply -f ./ns_test-wyc.yaml
kubectl get   -f ./ns_test-wyc.yaml
kubectl get   ns/test-wyc
kubectl get   ns -l kubernetes.io/metadata.name=test-wyc --show-labels

应用ns_prod-wyc.yaml这个manifests

kubectl apply -f ./ns_prod-wyc.yaml --dry-run=client
kubectl apply -f ./ns_prod-wyc.yaml
kubectl get   -f ./ns_prod-wyc.yaml
kubectl get   ns/prod-wyc
kubectl get   ns -l kubernetes.io/metadata.name=prod-wyc --show-labels

应用ns_uat-wyc.yaml这个manifests

kubectl apply -f ./ns_uat-wyc.yaml --dry-run=client
kubectl apply -f ./ns_uat-wyc.yaml
kubectl get   -f ./ns_uat-wyc.yaml
kubectl get   ns/uat-wyc
kubectl get   ns -l kubernetes.io/metadata.name=uat-wyc --show-labels
# --> 命令行给其打上相应的标签。规范的是修改其manifests,再应用manifests,这里只是引出命令行如何给某资源对象打Label
kubectl label Namespace uat-wyc env=uat proj=wyc
# --> 再通过相应标签进行查看
kubectl get   ns -l kubernetes.io/metadata.name=uat-wyc --show-labels

2.4 列出相关ns资源对象

列出所有的ns资源对象

## 格式
kubectl get <某资源的kind>## 示例
kubectl get Namespace

列出已存在的一个或多个ns资源对象

## 格式1
kubectl get <某资源的kind>  <对象name>   [对象name]## 格式2
kubectl get <某资源的kind>/<对象name>    [某资源的kind]/[对象的name]## 格式1示例
kubectl get Namespace   dev-wyc  test-wyc  uat-wyc  prod-wyc## 格式2示例
kubectl get Namespace/dev-wyc Namespace/test-wyc  Namespace/uat-wyc  Namespace/prod-wyc

通过标签列出wyc项目相关的ns资源对象

# 列出wyc项目相关的所有ns资源对象
kubectl get ns -l proj=wyc# 列出dev环境之wyc项目所用的ns资源对象
kubectl get ns -l env=dev,proj=wyc   # 指定多个标签进行过滤,当有多个时,用逗号分隔,且是与(and)关系# 列出test环境之wyc项目所用的ns资源对象
...................................# 列出uat环境之wyc项目所用的ns资源对象
...................................# 列出prod环境之wyc项目所用的ns资源对象
...................................

2.5 ns资源对象的name

非namespace级别的某资源所实例化出来的对象不能重名,不同资源间所实例化出来的对象是可以重名的。
namespace级别的某资源所实例化出来的对象不能在所指定 ns 中与现有某资源对象重名,可与非指定ns中现有某资源对象重名。
kubernetes中所有资源对象的name规范均遵循一定的规范:

https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names

ns资源对象的name规范得遵循 RFC 1123。
在这里插入图片描述

2.6 ns资源对象的labels

kubernetes中的各资源对象均有 labels 这一属性,属于元数据(metadata)的一部分,支持在线更新,我们不能随便在线更新。
各ns资源对象具备默认的标签之 app.kubernetes.io/instance=<ns资源对象的name> ,我们可以给ns资源对象额外的添加 labels。
有些场景下,ns资源对象可能需要打上特定的标签,例如:Istio部署到kubernetes平台上,其业务所用标签就得打上 Istio 所规定的标签。

2.7 列出ns资源对象所包含非namespace资源对象

首先,kubectl -n <ns资源对象> get all 是看不到 <ns资源对象> 所包含的所有非namespace资源所实例化出来的对象,即使kubernetes中的标准资源。

## 查看 ns/uat-wyc 对象中所包含的所有资源对象,(不严谨) 
root@master01:~# kubectl -n uat-wyc get all
No resources found in uat-wyc namespace.
root@master01:~# ## 可用以下命令查看某 ns资源对象 中所包含的所有资源对象 (严谨)
# <== 列出namespace级别的resources,且只显示name
kubectl api-resources --verbs=list --namespaced=true -o name# <== 列出某ns资源对象中所包含namespace级别资源的相关资源对象
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl -n <ns资源对象>  get --show-kind  --ignore-not-found | sed '/^NAME/'d | awk -F " " '{print $1}' # <== 示例
root@master01:~#  kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl -n uat-wyc  get --show-kind  --ignore-not-found | sed '/^NAME/'d | awk -F " " '{print $1}' 
configmap/kube-root-ca.crt      # --> configmap是k8s中的标准资源
serviceaccount/default          # --> serviceaccount是k8s中的标准资源

2.8 ns资源对象的删除

第3章 基于ns资源对象实践理解Label的管理

相关文章:

k8s中资源的介绍及标准资源namespaces实践

文章目录 第1章 k8s中的资源(resources)介绍1.1 k8s中资源(resouces)的分类1.2 k8s中资源(resources)的级别1.3 k8s中资源(resources)的API规范1.4 k8s中资源(resources)的manifests 第2章 k8s中的标准资源之namespaces的实践2.1 基本介绍2.2 编写相关ns资源对象的manifests2.3…...

k8s学习记录(四):节点亲和性

一、前言 在上一篇文章里&#xff0c;我们了解了 Pod 中的nodeName和nodeSelector这两个属性&#xff0c;通过它们能够指定 Pod 调度到哪个 Node 上。今天&#xff0c;我们将进一步深入探索 Pod 相关知识。这部分内容不仅信息量较大&#xff0c;理解起来也有一定难度&#xff0…...

联想笔记本电脑在Windows下通过联想驱动实现风扇控制

概述 本文旨在解决部分联想笔记本电脑无法使用主流的风扇控制工具&#xff08;如Fan Control, SpeedFan&#xff09;控制风扇的问题。主流的风扇控制工具在这些电脑上会因无法找到控制风扇的EC寄存器而无法发挥作用。但这是不是就意味着没办法控制风扇了呢&#xff1f;答案是否…...

Java单链表题目

Java链表题目练习 移除链表元素反转单链表链表的中间节点返回倒数第K个节点合并两个有序列表判断链表是否回文 学习了知识&#xff0c;就要进行其检验自己是否真正学会&#xff0c;练习题目来加强对知识的理解&#xff0c;今天就来练习一下链表题目 移除链表元素 目的&#xff…...

springboot入门-controller层

在 Spring Boot 中&#xff0c;Controller 层是处理 HTTP 请求的核心组件&#xff0c;负责接收客户端请求、调用业务逻辑&#xff08;Service 层&#xff09;并返回响应。其核心原理基于 Spring MVC 框架&#xff0c;通过注解驱动的方式实现请求的路由和参数绑定。以下是 Contr…...

游戏引擎学习第245天:wglChoosePixelFormatARB

Blackboard: PBO&#xff08;像素缓冲对象&#xff09; 我们将一起编写一个完整的游戏。老实说&#xff0c;我原本以为我们会花更长时间来实现异步纹理上传&#xff0c;结果我们只用了两天时间&#xff0c;主要原因是我们没有设置标志来真正告诉程序下载纹理&#xff0c;所以这…...

中国大陆DNS服务选择指南:阿里云VS AWS,合规性与最佳实践

导语 在中国大陆开展互联网业务时,DNS服务的选择不仅关乎性能,更涉及合规性问题。本文将深入探讨DNS服务商选择的自由度、阿里云与AWS DNS服务的优劣势,以及如何在确保合规的同时优化您的域名解析策略。无论您是初创公司还是跨国企业,这份指南都将助您在复杂的中国互联网环境中…...

LLaMa Factory大模型微调

LLaMa Factory大模型微调 大模型微调平台&硬件LLaMA-Factory安装hfd下载hugging face模型自我认知微调Alpaca数据集指令监督微调断点续训 大模型微调 微调自我认知微调特定领域数据集。 平台&硬件 Ubuntu20.04显卡&#xff1a;M40 24G 2080TI 22G微调框架&#xff…...

git和github的使用指南

目录 1.git初始化本地仓库 2.远程仓库 3.如何将自己的代码上传到远程仓库的某一个分支 1.git初始化本地仓库 在项目目录中初始化 Git 仓库&#xff1a; cd your-project-directory git init 将文件添加到暂存区&#xff1a; git add . //添加所有文件 git add <fi…...

如何快速轻松地恢复未保存的 Word 文档:简短指南

文字处理器已经存在了几十年&#xff0c;其中许多已经变得非常擅长防止问题。丢失未保存的数据是一个常见问题&#xff0c;因此办公软件通常带有恢复文件的方法。在本文中&#xff0c;我们将介绍如何恢复 Word 文档&#xff0c;即使您尚未保存它。 确保数据安全的最佳方法是保…...

【Linux网络】打造初级网络计算器 - 从协议设计到服务实现

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

基于STM32定时器中断讲解(HAL库)

基于STM32定时器中断讲解&#xff08;HAL库&#xff09; 1、定时器简单介绍 以STM32F103C8T6中几个定时器为例&#xff1a; TIM1&#xff1a;这是一个高级定时器&#xff0c;不仅具备基本的定时中断功能&#xff0c;还拥有内外时钟源选择、输入捕获、输出比较、编码器接口以…...

《Vue3学习手记5》

pinia 共享的数据交给集中状态管理 引入与使用 //main.ts // 引入Pinia import {createPinia} from "pinia"const piniacreatePinia() app.use(pinia)案例&#xff1a; <template><div class"count"><h2>当前和为&#xff1a;{{ sum…...

MySQL多查询条件下深度分页性能优化技巧及示例总结

深度分页(Deep Pagination)是MySQL中常见的性能瓶颈问题,特别是在多查询条件下,当offset值很大时,查询性能会急剧下降。本文将总结多种优化技巧,并提供实际示例。 一、深度分页的性能问题分析 当执行类似SELECT * FROM table WHERE condition1 AND condition2 LIMIT 1000…...

3、初识RabbitMQ

界面上的导航栏共分6部分&#xff0c;分别代表不同的意思 一、Producer和Consumer Producer: 生产者, 是RabbitMQ Server的客户端, 向RabbitMQ发送消息 Consumer: 消费者, 也是RabbitMQ Server的客⼾端, 从RabbitMQ接收消息 Broker&#xff1a;其实就是RabbitMQ Server, 主要…...

量子计算与GPU的异构加速:基于CUDA Quantum的混合编程实践

一、量子模拟的算力困境与GPU破局 量子计算模拟面临‌指数级增长的资源需求‌&#xff1a;n个量子比特的态向量需要存储2^n个复数。当n>30时&#xff0c;单机内存已无法承载&#xff08;1TB需求&#xff09;。传统CPU模拟器&#xff08;如Qiskit Aer&#xff09;在n28时计算…...

在Spring Boot项目中实现Word转PDF并预览

在Spring Boot项目中实现Word转PDF并进行前端网页预览&#xff0c;你可以使用Apache POI来读取Word文件&#xff0c;iText或Apache PDFBox来生成PDF文件&#xff0c;然后通过Spring Boot控制器提供文件下载或预览链接。以下是一个示例实现步骤和代码&#xff1a; 1. 添加依赖 …...

Windows怎样使用curl下载文件

安装curl 从官网下载&#xff1a;访问curl官方网站&#xff0c;根据系统位数&#xff08;32 位或 64 位&#xff09;选择相应的版本进行下载。下载完成后&#xff0c;双击安装程序并按照提示进行安装。也可以选择自定义安装路径&#xff0c;记住安装路径&#xff0c;后续配置环…...

priority_queue的学习

priority_queue的介绍 优先级队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆&#xff0c;在堆中可以随时插入元素&#xff0c;并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被…...

浅谈Java 内存管理:栈与堆,垃圾回收

在Java编程世界里&#xff0c;内存管理是一项极为关键的技能&#xff0c;它就像程序运行背后的“隐形守护者”&#xff0c;默默影响着程序的性能与稳定性。今天&#xff0c;咱们就来简单学习一下Java内存管理中的两大核心要点&#xff1a;栈与堆的内存分配机制&#xff0c;以及…...

windows下查看idea运行的进程占的JVM情况工具

jconsole 查看JVM 查看线程数 自己测试时&#xff0c;可以先不把线程关闭查效果。 也可以用这工具查下是不是有线程一直在增加。...

【新技术】微软 Azure Test Impact Analyzer (TIA) 全面解析

目录 一、什么是 Azure Test Impact Analyzer&#xff1f;二、核心功能与优势三、如何掌握 Azure TIA&#xff1f;四、工作中的典型应用场景五、最佳实践与注意事项六、总结 一、什么是 Azure Test Impact Analyzer&#xff1f; Azure Test Impact Analyzer (TIA) 是微软 Azur…...

JAVA服务内存缓慢上涨,年轻代GC正常但Full GC频繁,如何定位?

1. 分析 &#xff1a; 年轻代GC正常&#xff0c;说明年轻代的对象回收没有问题&#xff0c;可能大部分对象都是朝生夕死的&#xff0c;所以Minor GC能有效清理。但Full GC频繁&#xff0c;通常意味着老年代空间不足&#xff0c;导致频繁进行Full GC来回收老年代。而内存缓慢上…...

浏览器界面无显示,提示“代理服务器可能有问题”,这是怎么回事呢?

前言 &#x1f31f;&#x1f31f;本期讲解浏览器代理服务器解决办法介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…...

C#中的弱引用使用

弱引用&#xff08;Weak Reference&#xff09;是一种特殊的引用类型&#xff0c;它允许你引用一个对象&#xff0c;但不会阻止该对象被垃圾回收器&#xff08;GC&#xff09;回收。弱引用通常用于需要缓存或跟踪对象&#xff0c;但又不希望因保留引用而导致内存泄漏的场景。弱…...

在Linux虚拟机下使用vscode,#include无法跳转问题

总结&#xff1a;需要通过Linux指令来添加编译器和压缩文件&#xff0c;解压&#xff0c;这样获得的编译器会具有可执行权限类似于 -rwxr-xr-x 1 user user 12345 Apr 26 14:22 myscript.sh 如果你直接从window中拖入文件到Linux文件下&#xff0c;你需要自己来再度开启可编译…...

MIL、SIL、HIL与Back-to-Back测试详解:从模型到硬件的完整验证链

1. 引言 在嵌入式系统和控制算法开发中&#xff0c;MIL、SIL、HIL和Back-to-Back测试构成了从模型设计到硬件部署的完整验证流程。它们覆盖不同开发阶段&#xff0c;确保系统功能正确性、实时性和可靠性。 本文将清晰解析这四种测试方法的核心概念、应用场景及差异。 2. 四种测…...

【Android Compose】焦点管理

官方文档链接&#xff1a; https://developer.android.google.cn/develop/ui/compose/touch-input/focus?hlzh-cn 1、更改焦点遍历顺序 1.1、替换一维遍历顺序 &#xff08;1&#xff09;创建焦点引用对象&#xff1a; /// 创建4个引用对象&#xff08;二选一&#xff09…...

启动命令汇总(Redis / Kafka / Flume / Spark)

本文总结了本地开发环境&#xff08;Windows系统&#xff09;中启动推荐系统所需的所有组件命令&#xff0c;包括 Redis、Kafka、Flume 及 SparkStreaming 程序的启动流程。 1. 启动 Redis 进入 Redis 安装目录&#xff0c;执行&#xff1a; redis-server.exe测试连接&#x…...

python 画折线统计图

Python 画折线统计图&#xff08;line chart&#xff09;最常用的是 matplotlib。 最基本的折线图代码如下&#xff1a; import matplotlib.pyplot as plt# 假设这是你的数据 x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11]# 创建折线图 plt.plot(x, y, markero) # markero 是在点…...

java面向对象编程【高级篇】之继承

目录 &#x1f680;前言&#x1f914;什么是继承&#xff1f;&#x1f31f;权限修饰符&#x1f4af;private 修饰符&#x1f4af;默认&#xff08;无修饰符&#xff09;&#x1f4af;protected 修饰符&#x1f4af;public 修饰符&#x1f4af;归纳 &#x1f99c;继承的特点&…...

【数论分块】数论分块算法模板及真题

1.数论分块的含义 数论分块算法&#xff0c;就是枚举出使得取整函数发生变化的地方。 例如&#xff0c;对表达式 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in​⌋使用数论分块算法&#xff0c;就可以在 O ( n ) O(\sqrt n) O(n ​)的时间复杂度下枚举所有满足 ⌊ n i − 1 ⌋…...

DIY 3D打印机 原理及步骤概况

一、3D打印机的基本原理 硬件组成&#xff1a; 运动系统&#xff1a;控制X/Y/Z轴的步进电机&#xff08;或直线电机&#xff09;&#xff0c;决定打印头的移动精度。 热端&#xff08;挤出机&#xff09;&#xff1a;加热并挤出材料&#xff08;如PLA、ABS塑料&#xff09;。 …...

深度探索:DeepSeek赋能WPS图表绘制

一、研究背景 在当今数字化信息爆炸的时代&#xff0c;数据处理与可视化分析已成为众多领域研究和决策的关键环节。随着数据量的急剧增长和数据维度的不断丰富&#xff0c;传统的数据可视化工具在应对复杂数据时逐渐显露出局限性。Excel作为广泛应用的电子表格软件&#xff0c;…...

内存四区(栈)

今天我再次学到了有趣的知识&#xff0c;内存四区&#xff01; 内存四区分为代码区&#xff0c;全局区&#xff0c;栈区&#xff0c;堆区&#xff0c;今天我们详细来讲讲栈区&#xff01; 内存四区和栈区都是用来存放数据的&#xff0c;而栈区存放的数据具体有两类 1.形参数…...

Nginx性能优化:从配置到缓存,全面提升Web服务器性能

一、基础配置优化&#xff1a;释放硬件潜能 进程与连接调优 worker_processes: 推荐设置为 auto&#xff08;自动匹配CPU核心数&#xff09;&#xff0c;但在特殊场景下需手动优化&#xff1a;worker_processes 8; # 8核CPU手动指定 worker_cpu_affinity 000…...

系统架构设计(三):质量属性

常见分类 一般来说&#xff0c;质量属性可以分为以下几类&#xff1a; 类别常见质量属性性能相关响应时间、吞吐量、资源利用率、实时性、可扩展性可用性相关可用性、高可用性&#xff08;HA&#xff09;、可靠性、容错性、恢复性可维护性相关可维护性、可测试性、可扩展性、…...

C#中常见的设计模式

文章目录 引言设计模式的分类创建型模式 (Creational Patterns)1. 单例模式 (Singleton)2. 工厂方法模式 (Factory Method)3. 抽象工厂模式 (Abstract Factory)4. 建造者模式 (Builder) 结构型模式 (Structural Patterns)5. 适配器模式 (Adapter)6. 装饰器模式 (Decorator)7. 外…...

C# 枚举(Enum)声明与使用详解

在 C# 编程中&#xff0c;枚举&#xff08;Enum&#xff09;是一种非常实用的数据类型&#xff0c;它允许你定义一组具有名称的整型常量&#xff0c;使代码更具可读性和可维护性。枚举可以有效地替代使用硬编码数值&#xff0c;尤其是在处理状态、选项或标志时。本文将深入探讨…...

Linux-进程控制

目录 一、进程创建 1.1、fork()函数 1.2、fork的返回值 1.3、写实拷贝&#xff08;Copy-on-Write&#xff0c;COW&#xff09; 1.4、fork常规用法 1.5、fork调用失败的原因 二、进程退出 三、进程等待 1、wait和waitpid 1.1、解决僵尸进程问题 1.2、status参数 程序正…...

【优选算法 | 滑动窗口】滑动窗口算法:高效处理子数组和子串问题

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针 在本篇文章中&#xff0c;我们将深入剖析滑动窗口算法的核心原理。从基础概念到实战应用&#xff0c;带你了解如何利用滑动窗口高效解决连续子数组和子串等问题。无论你是算法入门的新手&#xff0c;还是…...

RabbitMQ全栈实践手册:从零搭建消息中间件到SpringAMQP高阶玩法

目录 前言 认识MQ 同步调用 异步调用 技术选型 安装 SpringAMQP 交换机类型 队列交换机绑定 环境搭建 Fanout交换机 声明队列和交换机 消息发送 消息接收 总结 Direct交换机 声明队列和交换机 消息发送 消息接收 总结 Topic交换机 声明队列和交换机 消息…...

头歌实训之存储过程、函数与触发器

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

系统架构设计中的DSSA方法:理论、实践与行业深度应用

引言 在软件架构设计领域&#xff0c;‌DSSA&#xff08;Domain-Specific Software Architecture&#xff0c;领域特定软件架构&#xff09;‌是一种专注于垂直行业或业务领域的架构设计方法论。与通用架构设计不同&#xff0c;DSSA通过提炼领域共性需求、构建可复用资产库&am…...

设计心得——数据结构的意义

一、数据结构 在老一些的程序员中&#xff0c;可能都听说过&#xff0c;程序其实就是数据结构算法这种说法。它是由尼克劳斯维特在其著作《算法数据结构程序》中提出的&#xff0c;然后在一段时期内这种说法非常流行。这里不谈论其是否正确&#xff0c;只是通过这种提法&#…...

【C】初阶数据结构12 -- 冒泡排序

本篇文章主要讲解经典排序算法 -- 冒泡排序。 目录 1 算法思想 2 代码 3 时间复杂度与空间复杂度分析 1&#xff09; 时间复杂度 2&#xff09; 空间复杂度 1 算法思想 选择排序是一种经典的交换排序算法。其算法思想也比较简单&#xff0c;主要是比较相邻元素&…...

HTTP, AMQP, MQTT之间的区别和联系是什么?华为云如何适配?

目录 &#x1f517; 一、共同点&#xff08;联系&#xff09;&#xff1a; &#x1f50d; 二、区别对比&#xff1a; &#x1f4d8; 三、简要说明 1. HTTP 2. AMQP 3. MQTT &#x1f517; 四、三者联系&#xff08;在华为云IoT平台中的应用&#xff09; &#x1f3af; …...

WPF之项目创建

文章目录 引言先决条件创建 WPF 项目步骤理解项目结构XAML 与 C# 代码隐藏第一个 "Hello, WPF!" 示例构建和运行应用程序总结相关学习资源 引言 Windows Presentation Foundation (WPF) 是 Microsoft 用于构建具有丰富用户界面的 Windows 桌面应用程序的现代框架。它…...

CrewAI Community Version(二)——Agent

目录 1. Agent总览2. Agent属性3. 创建Agent3.1 YAML配置3.2 直接用代码定义3.3 运行结果 参考 1. Agent总览 在CrewAI框架中&#xff0c;Agent是一个能具备下列能力的自主单元&#xff1a;   1. 执行特定的任务   2. 基于它的角色和目标进行决策   3. 使用工具完成任务 …...

阿里云VS AWS中国区:ICP备案全攻略与常见误区解析

导语 在中国大陆开展互联网服务时,ICP备案是必不可少的合规步骤。然而,随着云服务的多样化,许多企业在选择备案路径时常常感到困惑。本文将深入解析阿里云和AWS中国区的备案区别,为您提供清晰的操作指南,助您避开备案陷阱,确保业务合规运营。 一、备案基本原则 1. 服务器决定…...