自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 深入理解GO语言——GC垃圾回收二

书接上回,无论怎么优化,Go V1.3都面临这个一个重要问题,就是mark-and-sweep 算法会暂停整个程序。Go是如何面对并这个问题的呢?接下来G V1.5版本 就用 三色并发标记法 来优化这个问题那么Go是如何解决标记-清除(mark and sweep)算法中的卡顿(stw,stop the world)问题的呢?我们后续继续总结。

2024-04-07 16:09:16 707

原创 深入理解GO语言之GC垃圾回收

《深入理解Go语言》-GC全场景分析,关于以下知识总结,进行分享垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。

2024-04-07 15:45:48 1352

原创 K8s 是如何完成调度和权重调整?

kube-scheduler作为 K8s 集群的默认调度器,它监听(watch机制)kube-apiserver,查询还未调度的 pod,根据调度策略将 pod 调度至集群内最适合的Node。提示:以下是本篇文章正文内容,下面案例可供参考。

2024-01-09 20:27:11 1419 3

原创 关于gorm的preload方法笔记

gorm预加载

2023-10-08 10:29:30 633

原创 获取热门电影算法

功能#2:获取热门电影为我们的“Netflix”项目实现“获取热门电影”功能。我们将介绍以下内容描述解决方案复杂性措施时间复杂度空间复杂度描述#现在,我们需要建立一个标准,以便将来自多个国家的顶级电影组合成一个单一的顶级电影列表。为了扩展,内容搜索以分布式方式执行。每个国家/地区的搜索结果在单独的列表中生成。给定列表的每个成员都按受欢迎程度排名,1最受欢迎和受欢迎程度随着排名数字的增加而下降。假设以下标题由提供的 ID 表示:电影映射到他们的行列我们将得到n 个列表,这些列表都按受

2023-09-26 15:00:28 240

原创 在Golang中依赖注入-wire篇

实现各struct的工厂函数,wire称之为provider在wire.go中利用函数签名和函数体中调用wire.Build描述一个struct的所有依赖,此函数被称为 injector执行wire命令,会生成wire_gen.go 其中包含和injector签名相同的函数,函数的内容为构建的相关依赖并组合使用wire_gen.go中的函数创建我们的实例除了基础用法之外,还有很多高级用法,例如绑定接口、绑定值,来实现面向接口编程和单例模式,此部分可以参考官方文档。

2023-09-25 18:34:27 1468

原创 golang实现前缀数实现匹配路由和获取路由参数

使用前缀树 匹配路由提取路由上的参数规则

2023-09-16 18:01:09 613

原创 使用Gorm动态更新数据表中的字段

当使用API 更新数据表中的记录时,会存在只需要更新部分字段的需求。这里我使用了Gin 构建API, 通过Gorm进行数据表的操作。

2023-09-16 17:57:18 372

原创 etcd watch 机制源码解析——客户端篇

下图是本文讨论内容的目录树结构:提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2023-09-16 17:51:19 131

转载 Docker inspect各个字段意义

【代码】Docker inspect各个字段意义。

2023-04-09 19:59:42 522 1

原创 快速理解进程、线程、协程的概念,它们的区别和共同点,以及应用场景。

深入理解:子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。这里的a,b,c就是线程,也就是说线程是共享了进程的上下文环境,单核任务中划分更为细小的CPU时间段。实质上的理解:——先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。

2023-03-27 17:16:51 702

原创 GO语音-切片使用的雷区与性能优化相关

在 Go 语言中,切片(slice)的使用与需要注意的性能相关点

2023-02-10 16:35:38 356

原创 go语言基础-sync.Once

go语音基础

2023-01-09 11:02:13 125

原创 Docker——存储驱动原理

Docker文件存储

2022-07-08 15:41:19 1295

原创 如何触发Harbor的12种Webhook事件

Harbor-Webhook

2022-06-22 11:32:54 1542

原创 容器运行时runc

Docker引擎——详解docker开始发布时:有两个核心组件:LXC 和 docker daemonDocker daemon 是一个单一的二进制文件,包含:Docker客户端、Docker API、容器运行时、镜像构建等LXC提供了命名空间(Namespace)和控制组(CGrouop)等基础工具的操作能力。摆脱LXCDocker公司开发了Libcontainer的自研工具,来代替LXCLIBcontainer可基于不同内核为Docker上层提供必要的容器交互工具。在docke

2022-06-20 18:56:08 253

原创 解决跟Docker私有仓库登陆,推送,拉取镜像出现的报错

Docker私有仓库Harbor推送镜像

2022-06-16 14:26:26 2409

转载 Clear Read-Only Status

文章目录前言一、问题处理?前言Pycharm 问题:Clear Read-Only Status开发工具 git 人工智能一、问题处理?用的是ubuntu系统,一直在普通用户模式下打开Git下建的项目,今天运行神经网络程序时,由于有一个cudnn错误,必须要在sudo模式下才不会报错,所以用sudo试着打开了pycharm,发现是完全另一个pycharm,原先界面设置都没有了,发现在root模式和普通模式下pycharm的配置不一样,应该是有两个配置文件,一个属于普通用户模式,一个属于root

2022-05-19 17:50:45 1421

原创 XXL-Job Docker部署

文章目录一、环境准备二、拉取镜像三、启动数据库并执行初始化脚本四、启动xxl-job-admin登录验证一、环境准备服务器IP:192.168.0.1操作系统:centosDocker:Docker version 19.03.5二、拉取镜像docker pull xuxueli/xxl-job-admin:2.1.2docker pull mysql:5.7.28三、启动数据库并执行初始化脚本docker run -d -p 3386:3306 --name mysql -e MYSQ

2022-05-03 16:50:08 3586 1

原创 docker学习

文章目录@[TOC](文章目录)一、docker发展之路二、落后的旧时代1.虚拟机的不足2.容器3.Linux容器4.Windows 容器三、运行中的容器共享宿主机的内核一、docker发展之路容器为什么会出现容器的作用容器的应用场景二、落后的旧时代曾经win和linux没有响应的技术来保证在一台服务器上稳定而又安全的运行多个应用1.虚拟机的不足缺点就是依赖其专用的操作系统(OS),OS会占用额外的CPU,RAM和存储。虚拟机启动比较慢,可移植性差2.容器容器模型与虚拟机

2022-05-03 16:25:57 809

原创 一键部署k8s

文章目录一、一键安装docker二、一键部署k8s三、一键安装kubectl一、一键安装docker//安装docker yum -y install docker//运行dockersystemctl start docker//查看docker状态 systemctl status dockerdocker状态二、一键部署k8s//下载minikube curl -LO https://storage.googleapis.com/minikube/releases/la

2022-03-31 18:17:57 2486

原创 SQL调优

文章目录前言一、SQL优化索引的弊端索引的优势二、索引1.索引的分类2.创建索引2.SQL性能问题总结前言SQL编写过程:select dinstinct from join … on … where… group by … having … order bySQL解析过程:from … on … join … where… group by… having …select dinstinct …order by提示:以下是本篇文章正文内容,下面案例可供参考一、SQL优化

2022-03-31 17:58:47 772

原创 GoLang panic 用法

文章目录一、Go panic用法二、recover:三、偶尔的 panic 是必要的Go 中 panic 恢复的限制条件一、Go panic用法Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。在极个别的情况下,也就是说,遇到真正的异常的情况下

2022-01-10 13:46:43 886

原创 根据docker搭建rancher

文章目录一、先在dashboard上创建机器二、登录机器1.引入库一、先在dashboard上创建机器然后点击创建实例二、登录机器1.引入库[root@host-192-168-0-65 ~]# ssh [email protected] authenticity of host '192.168.0.65 (192.168.0.65)' can't be established.ECDSA key fingerprint is SHA256:UCKaEWbMMQu9j9fr7

2021-12-16 15:57:10 896

原创 GO面试题

文章目录一、go中,new 和 make 的区别二、go中,printf()、Sprintf()、Fprintf()函数的区别用法是什么?三、go中数组与切片的区别3.1 数组3.2 切片四、go基本命令五、go 语言中的协程六、 进程、线程、协程之间的区别一、go中,new 和 make 的区别new 的作用是初始化一个指向类型的指针(*T)new 函数是内建函数,函数定义: func (Type) *Type使用 new 函数来分配空间。传递给 new 函数的是一个 类型,不是一个值。返回值

2021-11-17 10:05:48 337

原创 HTTP状态码汇总

文章目录前言正文1××: 信息状态码2××: 成功状态码3××: 重定向状态码4××: 客户端错误状态码5××: 服务端错误状态码前言http 状态码可以让我们很方便的了解到所请求的所在状态。所以有必要总结一下。HTTP 状态码总分为五类:1 开头:信息状态码2 开头:成功状态码3 开头:重定向状态码4 开头:客户端错误状态码5 开头:服务端错误状态码正文1××: 信息状态码状态码含义描述100继续初始的请求已经接受,请客户端继续发送剩余部分101切换

2021-11-02 16:52:03 586

原创 StorageClass

文章目录前言一、创建二、新建三、测试前言PV和PVC都是静态的,什么意思呢,就是如果我们要使用一个PVC 的话就必须要手动去创建一个 PV ,这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个对读写速度有要求比较高,特别是对于StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适,这种情况下我们要用到动态 PV,就需要 StorageClass。一、创建要使用 StorageClass,我们就得安装对应的自动配置程序,比如我们使用的

2021-10-28 09:26:12 130

原创 Kubernetes之Informer机制

文章目录一、Index二、DeltaFIFO三、Reflector四、Controller五、Informer六、Work Queue代码示例:通过informer 采集 event 并存入 ESKubernetes是典型的 server-client 架构,etcd存储集群的数据信息,apiserver 作为统一的操作入口,任何对数据的操作都必须经过apiserver。客户端通过ListAndWatch 机制查询apiserver,而informer 模块则封装了 List-Watch整体架构大

2021-10-13 17:12:08 535

原创 Kubernetes之RBAC

文章目录前言一、RBAC API 对象二、创建一个只能访问某个namespace的用户二、使用步骤1.引入库2.读入数据总结前言RBAC 使用rbac.authorization.k8s.io API Group 来实现授权决策,允许管理员通过 Kubernetes API 动态配置策略,要启动RBAC,需要在 apiserver 中添加参数 --authorization - mode - RBAC,如果使用 kubeadm 安装的集群,1.6版本以上都默认开启了 RBAC, 可以通过查看Maste

2021-10-08 10:59:32 214

原创 Service

文章目录一、Service二、三种 IP三、定义 Service四、kube-proxy五、Service 类型NodePort 类型六、ExternalName一、ServicePod 的生命是有限的,死亡之后是不会复活的。但是RC 和 Deployment 可以用来动态的创建和销毁 Pod。尽管每个 Pod 都有自己的 IP 地址,但是如果 Pod 重新启动了的话那么他的 IP 很有可能也就变化了,这就会带来一个问题:比如我们有一些后端的 Pod 的集合为集群中的其他前端的 Pod 集合提供 AP

2021-09-27 17:14:15 80

原创 Job和 CronJob 的使用

文章目录一、Job 和CronJobJobCronJob一、Job 和CronJob我们在日常生活中经常会遇到一些需要进行批量数据处理和分析的需求,当然也会按时间来进行调度的工作,在我们 Kubernetes 集群中为我们提供 Job 和 CronJob 两种资源对象来应对我们的这种需求。Job我们用 Job 这个资源对象来创建一个任务,我们定一个 Job 来执行一个倒计时的任务,定义 YAML 文件:apiVersion: batch/v1kind: Jobmetadata: name

2021-09-24 16:58:34 317 1

原创 Pod 自动扩缩容

文章目录Pod 自动扩缩容Pod 自动扩缩容我们可以手动实现 Pod 的扩缩容,但是如果业务请求量很大的时候,就很麻烦了,所以我们需要去实现自动扩缩容。如果 Kubernetes 系统能够根据 Pod 当前的负载的变化情况来自动的进行扩缩容就好了,因为这个过程本来就是不固定的,频繁的发生,所以手动实现扩缩容是不现实的。Kubernetes 为我们提供了一个资源对象: Horizontal Pod Autoscaling (Pod 水平自动伸缩)简称 HPA 。HPA通过监控分析 RC 或者 Depl

2021-09-23 16:07:39 290

原创 Deployment的使用

文章目录一、使用二、创建三、滚动升级四、回滚Deployment一、使用之前我们学习了 Replication Controller 和 ReplicaSet 两种资源对象, RC 和 RS 的功能基本上是差不多的,唯一的区别就是 RS 支持集合的 selector 。我们也学习到了用 RC /RS 来控制 Pod 副本的数量,也实现了滚动升级 Pod 的功能,现在好像一切都在完美运行,但是我们之前也提到了推荐使用 Deployment 这种控制器了,而不是我们之前的 RC 或者 RS。没有对比就没

2021-09-22 16:15:05 472

原创 使用Replication Controller、Replica Set 管理 Pod

文章目录一、使用Replication Controller、Replica Set 管理Pod二、Replication Controller(RC)三、ReplicaSet (RS)一、使用Replication Controller、Replica Set 管理Pod我们之前是学习的Pod 的一些基本使用方法,而且我们都是直接来操作 Pod,假如我们现在有一个 Pod 正在提供线上的服务,我们可能遇到以下场景:某次运营活动非常成功,网站访问量突然暴增运行当前 Pod 的节点发生故障了, P

2021-09-18 11:25:06 169

原创 初始化容器

文章目录一、Init Container一、Init Container上次学到容器的健康检查的两个探针: liveness probe(存活探针)和 readiness probe (可读性探针)的使用方法,我们说在这两个探针是可以影响容器的声明周期,包括我们之前提到的容器的两个钩子函数 PostStart 和 PreStop。今天给大家介绍的是 Init Container(初始化容器)。Init Container就是用来做初始化工作的容器,可以是一个或者多个,如果有多个的话,这些容器会按定

2021-09-17 10:35:33 834

原创 Pod健康检查

文章目录一、健康检查一、健康检查Pod中容器的声明周期的两个钩子函数, PostStart 与 PreStop,其中, PostStart 是在容器创建后立即执行的,而 preStop 这个钩子函数则是在容器终止之前执行的,除了上面两个钩子函数之外,还有一项配置会影响到容器的生命周期,那就是健康检查的探针。在 Kubernetes 集群中,我们可以通过配置 liveness probe(存活探针)和 readingess probe(可读性探针)来影响容器的生存周期* kubelet 通过使用 l

2021-09-16 15:12:08 1179

原创 YAML文件

文章目录前言一、YAML基础MapsLists使用YAML创建Pod创建pod前言一、YAML基础它的基本语法规则如下:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格键缩进的空格数目不重要,只要相同层级的元素左对齐即可# 表示注释,从这个字符一直到行尾,都会被解析器忽略在Kubernetes中,只需要了解俩种结构类型就行了ListsMaps也就是说,你可能会遇到Lists的Maps和Maps的Lists等等但是只需要掌握这俩种就够了MapsMap

2021-09-15 15:17:23 115

原创 kubernetes基本概念与组件

文章目录一、基本概念组件通信一、基本概念Kubernetes 中的绝大部分概念都抽象成 Kubernetes 管理的一种资源对象,下面我们一起学习一些资源对象:Master:Master 节点是 Kubernetes 集群的控制节点,负责整个集群的管理和控制。Master 节点上包含以下组件:kube-apiserver:集群控制的入口,提供HTTP REST 服务kube-controller-manager: Kubernetes集群中所有资源对象的自动化控制中心kube-schedul

2021-09-09 09:13:21 461

原创 kubernetes学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Namspace二、DeploymentService一、NamspaceNamespace是对一组资源的对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的Pods,serveres,deployments等都是属于某一个namespace的(默认是default),而Node,PersistentVolumes等则不属于任何一个Namespace。二、Deployment是否手动创建Pod

2021-09-08 13:39:01 56

原创 开源代码:KubeSphere 核心架构解析

文章目录前言一、核心组件二、ks-apiserver 的核心架构API 聚合与权限控制API聚合、权限控制、CRD+controller权限控制CRD +controller2.读入数据总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、核心组件ks-console 前端服务组件ks-apiserver后端服务组件ks-controller-manager资源状态维护组件Kubesphere的后端设计中沿用了K8s声明式API的风格,所有可操作的资源都尽可能的抽象成为Cust

2021-09-07 13:14:36 812

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除