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

苏州做网站外包的公司/企业网站营销的优缺点及案例

苏州做网站外包的公司,企业网站营销的优缺点及案例,网站开发合同 深圳思,胶州住房和城乡建设厅网站目录 一、Kubernetes的list-watch机制 1、List-watch 2、创建pod的过程: 二、scheduler调度的过程和策略: 1、简介 2、预算策略:predicate 3、优先策略: 3.1、leastrequestedpriority: 3.2、balanceresourceal…

目录

一、Kubernetes的list-watch机制

1、List-watch

2、创建pod的过程:

二、scheduler调度的过程和策略:

1、简介

2、预算策略:predicate

3、优先策略:

3.1、leastrequestedpriority:

3.2、balanceresourceallocation:

3.3、imagelocalitypriority:

4、选择的过程:

三、kubernetes对Pod的调度策略

四、定向调度

1、调度策略简介:

2、指定节点:

3、指定标签:

五、亲和性调度:

1、介绍:

2、键值的运算关系:

3、node亲和性实例


一、Kubernetes的list-watch机制

1、List-watch

K8S集群中,通过List-watch机制进行每个组件的协作,保持数据同步。这种设计可以实现每个组件之间的解耦

kubectl配置文件,统一向集群内部apiserver发送命令——通过apiserver把命令发送到各个组件

创建成功之后,kubectl get pod,kubectl describe pod nginx查看信息——在ETCD数据库中

List-watch会在每一步把监听的消息(apiserver:6443)——组件controller-manager、schedule、kubelet、ETCD都会监听apiserver的6443端口

2、创建pod的过程:

1、客户端向apiserver发送创建创建pod的请求,然后apiserver将请求信息存入到ETCD中

2、存入完之后,ETCD会通过apiserver发送创建pod资源的事件

3、controller-manager通过List-watch机制监听apiserver发送出来的事件,并创建相关的pod资源。创建完成之后,通过apiserver将信息存入到ETCD中

4、ETCD存入更新信息之后,再次通过apiserver发送调度pod资源的事件到scheduler

5、scheduler通过List-watch机制监听到apiserver发出的调度事件,通过调度算法,将pod资源调度到合适的node节点上,调度完成后通过apiserver将调度信息更新到ETCD中

6、ETCD收到更新信息后,再次向apiserver发出的创建pod的事件

7、kubelet通过List-watch机制监听apiserver发出的创建pod的事件,然后根据事件信息,在相应的node节点完成pod的创建

二、scheduler调度的过程和策略:

1、简介

scheduler是K8S集群的调度器,把pod分配到集群的节点

调度规则:

  1. 公平,每个节点都能够分配资源
  2. 资源高效利用,集群中的资源可以被最大化使用
  3. 效率:调度的性能要好,能够尽快的完成大批量pod的调度工作
  4. 灵活:允许用户根据自己的需求,控制和改变调度的逻辑

scheduler:负责调度资源,把Pod调度到node节点上

有两种策略:预算策略、优选策略

scheduler是一个单独运行的程序,只要启动之后就会一直监听apiserver。获取报文中的字段:spec中的nodeName字段

创建pod时,为每个pod创建一个binding,表示该往哪个节点上部署

创建pod到节点时,有两个策略

先执行预算策略,在执行优先策略。这两步的操作都必须成功,否则立刻返回报错

部署的node必须满足这两个策略,少一个都不行

2、预算策略:predicate

自带一些算法,选择node节点,是scheduler自带的算法策略,不需要人工干预

  1. podfitsresources:pod的适应策源,检查节点上剩余的资源是否满足pod请求的资源(主要是CPU和内存)
  2. podfitshost:po适应主机,如果pod指定了node的name,检测主机名是否存在,如果存在要和pod指定的名称匹配,这才能调度过去
  3. podselectormarches:pod选择器匹配,创建pod的时候,可以根据node'节点的标签来进行匹配。他查找指定的node节点上标签是否存在。存在的标签是否匹配
  4. nodeskconflict:无磁盘冲突,确保已挂载的卷和pod卷不发生冲突。除非目录是只读

如果预算策略不满足,pod将始终处于pending状态,不断重试调度,直到节点满足条件为止

若三个node节点都满足——>优选策略

3、优先策略:

3.1、leastrequestedpriority:

最低请求优先级,通过算法计算节点上的CPU和内存使用率,确定节点的权重

使用率越低的节点,相应的权重就越高。调度时会更倾向于这些使用率低的节点。实现资源合理的利用

3.2、balanceresourceallocation:

平衡资源分配,算CPU和内存的使用率,给节点赋予权重。权重算的是CPU和内存使用率接近,权重越高。

和上面的最低请求优先级一起使用

举例:

node1 CPU和内存使用率:20 60

node2 CPU和内存使用率:50 50

node2的内存和CPU使用率接近,权重高,会被选择

3.3、imagelocalitypriority:

节点上是否已经有了要部署的镜像。镜像的总数成正比,满足的镜像数越多,权重越好

以上三个策略都是scheduler自带的算法,自动的

4、选择的过程:

先通过预算策略选择出可以部署的节点,在通过优选策略选择出最好的节点,以上都是自带的算法。K8S集群自己来选择

三、kubernetes对Pod的调度策略


在 Kubernetes 中,调度 是指将 Pod 放置到合适的节点上,以便对应节点上的 Kubelet 能够运行这些 Pod。

1)定向调度: 使用 nodeName 字段指定node节点名称;使用 nodeSelector 字段指定node节点的标签;

2)亲和性调度: 使用 节点/Pod 亲和性(NodeAffinity、PodAffinity、PodAntiAffinity);

3)污点与容忍: 使用 节点设置污点,结合 Pod设置容忍。

4)全自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出;
 

#补充,Pod和node的关系
Node 是 Kubernetes 集群中的工作节点
一个 Node 可以运行多个 Pod,而一个 Pod 只能运行在一个 Node 上
使用标签和选择器可以管理 Node 和 Pod 之间的关系,从而实现灵活的调度和管理。

四、定向调度

1、调度策略简介:


nodeName:指定节点名称,用于将Pod调度到指定的Node上,不经过调度器。

nodeSelector:在 Pod 定义文件的 spec 下的 nodeSelector 字段中设置一个标签选择器,在 Pod 调度的时候,只有具有这些标签的 Node 才会被考虑用来运行这个 Pod。
 

2、指定节点:

spec参数设置:

nodeName: node2

指定了节点,在参数中设置了nodeName,指定了节点的名称,会跳过scheduler的调度策略,这个规则是强制匹配

3、指定标签:

spec参数设置:

nodeSelector:

节点自定义标签:

kubectl label nodes master01 test1=a
kubectl label nodes node01 test2=b
kubectl label nodes node02 test3=ckubectl get nodes --show-labels
#查看节点的标签

指定节点标签部署pod,是要经过scheduler的算法,如果节点不满足条件,pod会进入pending状态。直到节点满足条件为止

五、亲和性调度:

1、介绍:

两种亲和性:节点亲和性和pod亲和性

两种策略:软策略和硬策略

node节点的亲和性:

preferredDuringSchedulingIgnoredDuringExecution:软策略

选择node节点时,声明了我最好能部署在node01。如果是软策略,他会尽量满足这个条件,不一定会完全部署在node01节点上。

requiredDuringSchedulinglgnoredDuringExecution:硬策略

选择pod时,声明了部署在node1上。如果是硬策略,必须满足硬策略的条件,必须部署在node1上。强制性要求

pod的亲和性:

preferredDuringSchedulingIgnoredDuringExecution:软策略

要求调度器将pod调度到其他pod的亲和性匹配的节点上。可以是,也可以不是,尽量满足

requiredDuringSchedulingIgnoredDuringExecution:硬策略

要求调度器将pod调度到其他pod的亲和性匹配的节点上,强制性满足

2、键值的运算关系:

都是根据标签来选择node或者pod的亲和性

  1. In(大写的i):在,选择的标签值在node节点上存在
  2. Notin:不在,选择label的值不在node节点上
  3. Gt:大于,要大于选择的标签值,只能比较整数
  4. Lt:小于,要小于选择的标签值,只能比较整数
  5. Exists:存在,只是选择标签对象,不考虑值
  6. DoesNotExist:不存在,选择不具有指定标签的对象。不考虑值

3、node亲和性实例

node亲和性的硬策略:

in策略:

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginxaffinity:
#选择亲和性部署方式nodeAffinity:
#选择的是node节点的亲和性requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:
#选择了亲和性的策略。nodeSelectorTerms你要选择哪个node作为硬策略。匹配的节点标签- matchExpressions:
#定义了一个符合我要选择的node节点信息- key: test3operator: In
#指定键值对的算法values:- c

硬限制选择test3=c的节点

Notin:

notin,只要不在test3=c的节点,都能够部署

删除节点上的标签:

kubectl label nodes master01 test1-
kubectl label nodes node01 test2-
kubectl label nodes node02 test3-

更改标签名:

kubectl label nodes node02  memory=1000 --overwrite

Gt:     

 affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: memoryoperator: Gtvalues:- "612"

大于612节点上部署

Exists:


    

  affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: memoryoperator: Exists
#指定键值对的算法为Exists或DoesNotExist,不能使用values字段

DoesNotExist:
     

 affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: memoryoperator: DoesNotExist

软策略:


    

  affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 1preference:matchExpressions:- key: memoryoperator: Invalues:- "1000"preferredDuringSchedulingIgnoredDuringExecution:- weight: 10preference:matchExpressions:- key: memoryoperator: Invalues:- "500"

多个软策略看权重,权重高,执行指定的软策略

硬策略和软策略一起执行:

先满足硬策略,再考虑软策略。若硬策略无法满足,软策略一个都不会执行

面试题:

你在部署pod的时候选择什么样的策略:

根据node的亲和性:

性能不一致,尽量把pod往性能高的多部署,选择软策略

节点故障或者节点维护中,只能选择硬策略,把故障节点剔除

4、pod亲和性实例

4.1、pod的亲和性和反亲和性:

调度策略:

匹配标签

操作符

拓扑域

调度目标

node的亲和性

主机标签

In、NotIn、Exists、DoesNotExist、Gt、Lt

不支持

指定主机

pod的亲和性

pod的标签

In、NotIn、Exists、DoesNotExist

支持

pod和指定标签的pod部署在同一个拓扑域

pod的反亲和性

pod的标签

In、NotIn、Exists、DoesNotExist

支持

pod和指定标签的pod部署在不同一个拓扑域

4.2、拓扑域:

K8S集群节点当中的一个组织结构,可以根据节点的物理关系或者逻辑关系进行划分

可以用来标识节点之间的空间关系,网络关系,或者其他类型的关系

这里pod的亲和性的拓扑域是标签

4.3、pod的亲和性实例:

1、In

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginxaffinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- nginxtopologyKey: test1
#topologyKey指定拓扑域的关键字段,表示正在使用test1作为拓扑的关键字。test1一般是节点标签,表示希望吧pod调度到包含有app标签的pod,值为nginx1的在test1的拓扑域上的节点

2、Exists

满足test1节点,且满足pod标签等于app的

      affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: ExiststopologyKey: test1

软策略:

表示尽量选择满足不存在app的pod标签的 并且 是满足test1的节点的   

   affinity:podAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 1podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: DoesNotExisttopologyKey: test1

反亲和性:

表示反转,满足哪个就不去哪个

软策略反亲和性:

硬策略反亲和性:

注意点:

  1. pod的亲和性策略,在配置时,必须要加上拓扑域的关键字topologykey,指向的是节点标签
  2. pod亲和性的策略分为硬策略和软策略
  3. pod亲和性的NotIn可以替代反亲和性
  4. pod亲和性主要是为了把相关联的pod组件部署在同一节点上。lnmp

你在进行部署的时候,怎么考虑node节点:

软硬策略

污点和容忍

污点和容忍可以配合node的亲和性一块使用

污点:是node的调度机制,不是pod

被设为污点的节点,不会部署pod

污点和亲和性相反,亲和性是尽量选择和一定选择

污点的节点一定不被选择?

六、taint

1、taint种类:

  1. NoSchedule:K8S不会把pod调度到这个节点上
  2. PreferNoschedule:尽量避免把pod部署在该节点上,不是一定(master节点一般设这个)
  3. NoExecute:如果污点类型是他,K8S将会把该节点上的pod驱逐出去,而且也不会调度到这个节点

2、NoExecute驱逐:

基于控制器创建的pod,虽然被驱逐,他会在其他节点重新部署

如果是自主式pod,会被直接杀死

注意点:节点服务器需要维护的,服务器要关机,节点上的业务将会失效。在工作中主要部署pod的方式是控制器部署,尤其deployment控制器最多。

一旦设置为驱逐,控制器创建的pod会在其他节点重新部署。所以驱逐的业务主要用在业务维护,和业务回收

驱逐是所有的pod全部被驱逐,跟命名空间无关,所有的都会被驱逐。

不论创建方式是什么,都会被驱逐

但是系统集群组件不会被驱逐

3、污点相关命令:

#创建污点
kubectl taint node node01污点种类#删除污点
kubectl taint node node01 key:NoSchedule-#查看污点
kubectl describe nodes node01  | grep -i taints

1、NoSchedule污点

相当于硬策略,不会部署在该节点

kubectl taint node node01 key=1:NoSchedule

2、PreferNoSchedule污点

相当于软策略,尽量避免把pod部署在该节点上,不是一定(master节点一般设这个)

kubectl taint node node01 key=1:PreferNoSchedule

3、NoExecute污点

驱逐污点,配置之后,驱逐该节点上的pod,并且之后不会再部署到该节点上

kubectl taint node node01 key1=2:NoExecute

所有node1上的pod全部被驱逐,自主式pod全部被删除

七、容忍:

即使节点上设置了污点,有了容忍机制,依然可以在设置了污点了节点上部署pod

特殊情况:NoExecute依然可以部署pod,但是有生命周期,时间一到,pod会被销毁然后重新拉起

生命周期结束之后,会驱逐一部分pod到其他节点, *有的节点还是会保持在污点之上

适用于该节点维护完毕,测试一下该节点工作是否正常

实验:

三个节点都设置污点NoSchedule

测试驱逐污点,能不能容忍

设置NoExcute驱逐污点,必须要设置时间限制

      tolerations:- key: keyoperator: Equalvalue: "1"effect: NoExecutetolerationSeconds: 36

这种格式表示会容忍所有污点的key,key对应的节点的污点的类型是NoSchedule

没有key,不匹配节点的标签,会容忍所有污点,但是类型是指定的类型

    

      tolerations:- operator: Existseffect: NoSchedule

没有要匹配的污点类型:

指定key的值,指定节点的标签值,但是不指定污点的类型,那么所有节点上只要包含这个指定的标签名,可以容忍所有的污点

      tolerations:- key: keyoperator: Exists

node的亲和性

pod的亲和性和发亲和性

污点和容忍

以上都是如何选择node节点部署pod

选择一个期望的节点来部署pod

适用场景举例:

多个master节点:

kubectl taint node master节点名 node-role.kubernetes.io/master=PreferNoSchedule

尽量不往master节点上部署pod,但是不一定。防止资源浪费,也可以自定义一个标签

业务维护:

node02需要维护2个小时

但是这个节点上还有业务pod在运行

就需要把这个节点的污点,设置为驱逐:NoExecute

将该节点上的pod全部赶走

我们部署pod一般都是使用deployment控制器部署,若是控制器部署,会在其他节点重新部署,并不是被杀死。自主式的pod会被删除

一旦节点恢复,一定要把污点去除

八、cordon和drain:

cordon:可以把节点标记为不可用状态

#标记节点为cordon不可部署

kubectl cordon master01 node01

#取消标记
kubectl uncordon master01 node01

drain:排水,把该节点下的pod全部转移到其他node节点上运行

  1. 一旦执行了drain,被执行的节点会变成不可调度状态
  2. 会驱逐该节点上的所有pod

kubectl drain node02 --ignore-daemonsets --delete-local-data --forcedrain:开始排水,标记node节点为不可调度,然后驱逐pod--ignore-daemonsets:忽视daemonset方式部署的pod,daemonset部署的pod不会被转移(daemonset要部署的一般是重要的后台运行的,系统pod,所以不动)
--delete-local-data:有本地挂载的pod会被强制杀死
--force:强制释放不是控制器管理的pod

#取消drain:
kubectl uncordon node02

相关文章:

【K8S 云原生】Kurbernets集群的调度策略

目录 一、Kubernetes的list-watch机制 1、List-watch 2、创建pod的过程: 二、scheduler调度的过程和策略: 1、简介 2、预算策略:predicate 3、优先策略: 3.1、leastrequestedpriority: 3.2、balanceresourceal…...

vue-office 支持多种文件(docx、excel、pdf)预览的vue组件库

一、文档链接 https://gitcode.com/mirrors/501351981/vue-office/overview?utm_sourcecsdn_github_accelerator&isLogin1 二、安装 #docx文档预览组件 npm install vue-office/docx vue-demi0.13.11#excel文档预览组件 npm install vue-office/excel vue-demi0.13.11#…...

如何使用GaussDB创建脱敏策略(MASKING POLICY)

目录 一、前言 二、GaussDB中的脱敏策略 1、数据脱敏的定义 2、创建脱敏策略的语法说明 三、在GaussDB中如何创建数据脱敏策略(示例) 1、创建脱敏策略的一般步骤 2、GaussDB数据库中创建脱敏策略的完整示例 1)开启安全策略开关,以初识用户omm登录…...

【Golang map并发报错】panic: assignment to entry in nil map

go并发写map[string]interface{}数据的时候,报错:panic: assignment to entry in nil map 多个key同时操作一个map时,如: test[key1] 1 test[key2] "a" test[key3] true 就会遇到并发nil值报错,什么…...

【GO语言依赖】Go语言依赖管理简述

在运行环境中,遭遇报错,显示找不到函数 经过研究后发现需要进行依赖管理,进行如下操作后解决: 起源 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如…...

论文阅读记录SuMa SuMa++

首先是关于SuMa的阅读,SuMa是一个完整的激光SLAM框架,核心在于“基于面元(surfel)”的过程,利用3d点云转换出来的深度图和法向量图来作为输入进行SLAM的过程,此外还改进了后端回环检测的过程,利用提出的面元的概念和使…...

性能分析与调优: Linux 内存观测工具

目录 一、实验 1.环境 2.vmstat 3.PSI 4.swapon 5.sar 6.slabtop 7.numstat 8.ps 9.top 10.pmap 11.perf 12.bpftrace 二、问题 1.接口读写报错 2.slabtop如何安装 3.numactl如何安装 4.numad启动服务与关闭NUMA 5. perf如何安装 6. kernel-lt-doc与kern…...

【ARM 嵌入式 编译系列 3.4 -- 查看所依赖库文件的路径 详细介绍】

文章目录 问题背景库文件路径查看库文件路径信息打印显示连接标准库不使用标准库 libgcc.a问题背景 在自己构建的 Makefle系统中对 cortex-m33 代码编译时,在链接阶段总是报出下面问题 ... arm-none-eabi-ld: cannot find libgcc.a: No such file or directory arm-none-eab…...

分布式锁3: zk实现分布式锁3 使用临时顺序节点+watch监听实现阻塞锁

一 zk实现分布式锁 1.1 使用临时顺序节点 的问题 接上一篇文章,每个请求要想正常的执行完成,最终都是要创建节点,如果能够避免争抢必然可以提高性能。这里借助于zk的临时序列化节点,实现分布式锁 1. 主要修改了构造方法和lock方…...

google drive api

1.创建oauth2 json 文件 https://developers.google.com/drive/api/quickstart/pythoncchttps://developers.google.com/drive/api/quickstart/python这里要注意quickstart的code会经常更新,有可能之前的版本不能用了 比方说下面这个包 from google.oauth2.crede…...

3_代理模式(动态代理JDK原生和CGLib)

一.代理模式 1.概念 代理模式(Proxy Pattern )是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的…...

Linux的权限(1)

目录 操作系统的"外壳"程序 外壳程序是什么? 为什么存在外壳程序? 外壳程序怎么运行操作? 权限 什么是权限? 权限的本质? Linux中的(人)用户权限? su和su -的区别…...

数据安全保障的具体措施有哪些

随着信息化时代的到来,数据已经成为企业和社会发展的重要资产。然而,数据安全问题也日益突出,如何保障数据的安全性、完整性和可用性成为了亟待解决的问题。以下将详细探讨数据安全保障的各个方面,以期为企业和社会提供更好的数据…...

浅谈标签及应用场景

一、标签的定义 标签是根据业务场景的需求,通过对目标对象(包含静态、动态特性),运用抽象、归纳、推理等算法得到的高度精炼的特征标识,用于差异化管理与决策。标签由标签名称和标签值组成,打在目标对象上…...

Linux动态分配IP与正向解析DNS

目录 一、DHCP分配 1. 动态分配 1.1 服务端服务安装 1.2 修改服务端dhcp配置 1.3 修改客户端dhcp,重启查询网卡信息 2. 根据mac固定分配 2.1 修改服务器端dhcp服务配置 2.2 客户端自动获取,查看网卡信息 二、时间同步 1. 手动同步 2. 自动同…...

pyspark 使用udf 进行预测,发现只起了一个计算节点

PySpark UDF 只使用一个计算节点的问题 原因分析 默认的并行度设置 PySpark在执行UDF(用户定义函数)时,默认可能不会利用所有可用的计算节点。这是因为UDF通常在单个节点上执行,并且如果没有正确设置分区,可能会导致数…...

mysql触发器的简单使用

mysql触发器 触发器是一个特殊的存储过程,在事件delete、insert、update发生时自动执行一条或多条SQL语句(执行多条SQL语句需要用begin、end 包裹起来) 创建触发器 创建触发器的四大必要条件 唯一的触发器名称触发器关联的表触发器响应的…...

全志T113开发板Qt远程调试

1引言 通常情况下工程师在调试Qt程序时,需要频繁制作镜像烧录到核心板来测试Qt程序是否完善,这样的操作既费时又费力。这时我们可以通过QtCreator设备功能,定义设备后,在x86_64虚拟机上交叉编译qt程序,将程序远程部署到…...

学习使用php、js脚本关闭当前页面窗口的方法

学习使用php、js脚本关闭当前页面窗口的方法 前言方法一:使用JavaScript代码方法二:通过http头文件来实现方法三:使用服务器端脚本来实现 前言 在开发web应用程序时,我们通常需要在不同的网页之间进行导航。通常情况下&#xff0…...

python 人脸检测与人脸识别

安装库文件: pip install dlib face_recognition import dlib import face_recognition import cv2 from PIL import Image, ImageDraw# 判断运行环境 cpu or gpu def check_env():print(dlib.DLIB_USE_CUDA)print(dlib.cuda.get_num_devices())# 判断人脸在图片当中的位置 def…...

RT-Thread: ulog 日志 讲解和使用

说明:记录 RT-Thread: ulog 日志功能和使用流程。 官网资料链接: https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/programming-manual/ulog/ulog 1.ulog 简介 日志的定义:日志是将软件运行的状态、过程等信息&#x…...

git ssh key 配置

一、Profile Settings-->SSH Keys 我们点击这里会有详情的文档介绍生成sshkey。 ssh-keygen -t rsa -b 2048 -C "邮箱" --回车... 将生成的id_rsa.pub粘贴到如下保存 git config --global user.name "用户名" git config --global user.email "邮…...

MongoDB聚合:$documents

$documents阶段可以根据输入值返回字面意义的文档。 语法 { $documents: <表达式> }$documents接受可解析为对象数组的任何有效表达式&#xff0c;包括&#xff1a; 系统变量&#xff0c;如 $$NOW 或 $$SEARCH_META $let 表达式 $lookup 表达式作用域中的变量 没有…...

程序员英语 - 英文会议常用句型

相信大部分程序员都会有如下经历&#xff1a; 产品经理&#xff08;BA&#xff09;们在和外系统聊集成方案时或者给用户解决某个问题时发现搞不定了&#xff0c;这个时候就会拉上程序员一起上会参与讨论或者排查问题&#xff0c;但程序员们英文又不好&#xff0c;上了会又听不懂…...

UV贴图和展开初学者指南

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 这正是本文的主题——UV贴图——登上舞台的时候。大多数 3D 建…...

解密Path环境变量

解密Path环境变量 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一起深入探讨程序开发中不可或缺的一项关键技术——“path环境变量”。无论…...

git撤销提交到本地的commit

有些时候&#xff0c;当我们提交代码到本地后&#xff0c;突然发现因为某些原因需要撤销提交本地的代码。 就比如我&#xff0c;因为代码写错了分支&#xff0c;已经提交到本地了&#xff0c;而我需要取消&#xff0c;并且还要把代码搞得另外的分支上。 提交前&#xff1a; …...

使用Adobe Acrobat Pro DC给pdf文件填加水印

前言 GPT4的官方售价是每月20美元&#xff0c;很多人并不是天天用GPT&#xff0c;只是偶尔用一下。 如果调用官方的GPT4接口&#xff0c;就可以按使用量付费&#xff0c;用多少付多少&#xff0c;而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…...

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题&#xff1a; 尝试 问题得到解决 我的解释 问题&#xff1a; 最近游戏要上线&#xff0c;发现一个现象&#xff0c;部分机型在启动的时候闪退或者黑屏&#xff0c;概率是5%左右&#xff0c;通过Bugly只有个别机型才有这个现象&#xff0c;其实真实情况比这严重的多…...

SpringBoot默认配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…...