自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (3)
  • 收藏
  • 关注

原创 10.3.k8s的附加组件-图形化管理工具dashboard

Dashboard是k8s集群管理的一个WebUI,它是k8s的一个附加组件,所以需要单独来部署;我们可以通过图形化的方法,创建、删除、修改、查询k8s资源;

2024-05-18 20:07:07 202

原创 10.2.k8s的附加组件-Metrics-server组件与hpa资源pod水平伸缩

Metrics-Server组件目的:获取集群中pod、节点等负载信息;hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod;参考链接:资源指标管道 | Kubernetes。

2024-05-18 16:30:59 401

原创 9.5.k8s中的控制器资源-DaemonSet控制器

daemonset资源:简称ds资源;他可以实现与pod反亲和性同样的目的,每个节点分别创建一个相同的pod;

2024-05-17 19:16:13 113

原创 高并发系统设计-系统的“三高“目标

高并发系统设计-系统的"三高"目标:高性能,高可用,高扩展

2024-05-13 10:27:30 920

原创 2.分布式-算法

分布式相关算法

2024-05-12 09:53:51 1134 1

原创 1.分布式-理论

分布式相关概念

2024-05-11 15:30:58 1078

原创 11.3.k8s中pod的调度-亲和性affinity

在K8S中,亲和性(Affinity)用来定义Pod与节点关系的概念,亲和性通过指定标签选择器和拓扑域约束来决定 Pod 应该调度到哪些节点上。与污点相反,它主要是尽量往某节点靠。在k8s当中,“亲和性”分为三种,节点亲和性、pod亲和性、pod反亲和性;

2024-05-10 10:07:06 450

原创 11.2.k8s中pod的调度-污点和污点容忍

污点:是标注在节点上的,当我们在一个节点上打上污点以后,k8s 会认为尽量不要将 pod 调度到该节点上,除非该 pod 上面表示可以容忍该污点,且一个节点可以打多个污点,此时则需要 pod 容忍所有污点才会被调度该节点。

2024-05-09 10:05:19 763

原创 11.1.k8s中pod的调度-nodeSelector节点选择器

NodeSelector是Kubernetes调度器的一部分,它允许开发者根据节点的标签,精确地控制Pod在集群中的调度位置。通过在Pod的定义中设置NodeSelector,可以确保Pod只会被调度到具有特定标签的节点上。我们先创建一个普通的deploy资源,设置为10个副本,查看创建的pod;我们发现,其是随机创建在,k8s1和k8s2节点上的;那么我们有没有方法,让pod根据我们自己的想法,创建在我们想要的节点上呐?接下来,我们就学习,关于pod调度的节点选择器,nodeSelector。

2024-05-06 11:09:11 533

原创 10.1.k8s的附加组件(coreDNS组件)

k8s主要有两种service发现机制:环境变量和DNS。没有DNS服务的时候,k8s会采用环境变量的形式,但一旦有多个service,环境变量会变复杂,为解决该问题,我们使用DNS服务。

2024-05-06 10:46:05 492

原创 9.4.k8s的控制器资源(job控制器,cronjob控制器)

job控制器就是一次性任务的pod控制器,pod完成作业后不会重启,其重启策略是:Never;​cronjob控制器,是基于job控制器,定期频率性执行任务;与linux系统中的crontab一样;

2024-05-05 08:58:52 462 1

原创 9.3.k8s的控制器资源(deployment部署控制器)

deployments资源,实际上就是用来专门部署业务代码的控制器,专门用于企业业务代码的升级和回滚。

2024-05-05 08:57:08 1333 2

原创 9.2.k8s的控制器资源(rs控制器replicasets)

replicaset副本控制器,简称:rs控制器;

2024-05-04 09:33:28 614

原创 9.1.k8s的控制器资源(rc控制器replicationcontrollers)

replicationcontrollers控制器资源,简称:rc控制器;简单理解,rc控制器就是控制相同的pod副本数量;使用rc控制器资源创建pod,就可以设定创建pod的数量;特点rc控制器创建的pod是按照标签进行副本数量控制的;rc控制器资源创建的pod,直接删除pod,还会重新拉起,只有删除rc资源,pod才会消失;修改rc资源,需要重新编rc资源清单,再次apply就可以修改了;

2024-05-04 09:32:24 337

原创 8.k8s中网络资源service

每当我们企业的业务pod迭代功能的时候,都会修改pod,修改后重新启动pod,ip就会变化,那么在生产环境当中,从用户到宿主机、从宿主机到pod,这一个访问流程,都是事先写好的,一旦pod修改后,ip产生变化,就需要重新配置,因此,k8s提供了service资源用于解决这一问题;

2024-05-03 16:27:18 1497

原创 4.3.k8s中pod的探针

Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况。探针的设置,都是为了优化业务时,需要做的事情;属于后期工作;

2024-05-03 10:07:48 6

原创 7.k8s中的名称空间namespace

是一种资源隔离机制,将同一集群中的资源划分为相互隔离的组。命名空间可以在多个用户之间划分集群资源。

2024-05-02 21:52:15 588

原创 4.4.k8s中的静态pod(了解即可)

我们都知道,pod是kubelet创建的,那么创建的流程是什么呐?此时我们需要了解我们k8s中config.yaml配置文件了;他的存放路径:【/var/lib/kubelet/config.yaml】

2024-05-02 21:51:38 92

原创 6.k8s中的secrets资源

secret资源就是将value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符串;因为,k8s拉取镜像与Docker拉取镜像是不同的方式,所以k8s需要创建一个属于自己的拉取镜像的方式;secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的;#指定镜像拉取的secret资源(secret的拉取镜像类型);# 登录pod资源查看env变量。# 编辑secrets资源清单。# 创建secret资源。

2024-05-01 23:30:38 1326 4

原创 5.k8s当中的ConfigMap资源

在Docker中,我们一般通过绑定挂载的方式将配置文件挂载到容器里。在Kubernetes集群中,容器可能被调度到任意节点,配置文件需要能在集群任意节点上访问、分发和更新。

2024-05-01 14:27:12 1106

原创 自动化部署工具easy_deploy

【代码】部署工具easy_deploy。

2024-04-29 18:27:05 98 3

原创 Redis面试题三(集群)

消息体大小上的考量至于这个消息体有多大?。如果槽位达到 65536,则所占空间提升到,极大浪费带宽。均衡数据分布在预期的集群规模下(通常不超过几千个节点),16384 个槽位可以确保每个节点负责的槽位数量适中,从而实现数据在节点间的相对均匀分布。即使在节点数量较小(如几十个)的情况下,每个节点也能平均分配到数百至数千个槽位,有利于保持数据分布的均衡。行业惯例与经验。

2024-04-24 19:23:38 792

原创 Redis面试题二(数据存储)

当客户端尝试访问一个键时,Redis 会检查该键是否已过期。如果发现键已过期,Redis 会在返回键值之前立即将其删除,然后返回空值(nil)给客户端,表明该键已不存在或已过期。:惰性删除是一种被动的过期处理方式,仅在访问时才触发删除操作。它对 CPU 资源消耗最小,但如果大量键过期后长时间未被访问,可能会导致无用数据在内存中积累,占用不必要的存储空间。

2024-04-24 15:37:02 885

原创 Redis面试题一(基本概念)

Redis的快速性能主要归因于其基于内存的数据存储、单线程无锁并发模型、使用C语言实现、精心设计的数据结构、对磁盘I/O的谨慎处理以及高效的网络通信机制。这些特性共同作用,使得Redis能够在处理大量高速数据访问场景时表现出卓越的性能。

2024-04-24 14:22:35 938

原创 OpenTelemetry-2.Go接入Jaeger(grpc,gin-http)

【代码】OpenTelemetry-2.Go教程(本地方法,GRPC,Gin-HTTP)

2024-04-23 16:15:02 943

原创 Jaeger分布式链路追踪工具

Jaeger 是受到 ​ ​Dapper​​​ 和 ​ ​OpenZipkin​​​ 启发的由 ​ ​Uber Technologies​​ 作为开源发布的分布式跟踪系统,兼容 OpenTracing 以及 Zipkin 追踪格式,目前已成为 CNCF 基金会的开源项目。其前端采用React语言实现,后端采用GO语言实现,适用于进行链路追踪,分布式跟踪消息传递,分布式事务监控、问题分析、服务依赖性分析、性能优化等场景。

2024-04-23 13:52:50 807

原创 OpenTelemetry-1.介绍

OpenTelemetry 包括可观测性的三个支柱:追踪、指标和日志。(本文将重点关注追踪)以 Dapper 的定义作为基准, 一个标准的分布式 Trace 示例如下图所示。一个 Trace 是由 Span 构成的有向无环图 (DAG), Span 是一个最小粒度的调用, 既可以指代一个程序块执行, 也可以指代一次 HTTP 等应用协议的远程调用。

2024-04-22 19:36:30 773

原创 mysql面试题九(SQL优化)

综上所述,一条SQL语句在MySQL中执行的过程涉及多个组件的协作,包括连接管理、查询解析与优化、权限验证、数据访问、日志记录以及结果返回等环节,确保了SQL语句的正确执行和数据的安全访问。在MySQL中,一条SQL语句从提交到服务器到最终返回结果,会经历一系列复杂的内部处理过程。

2024-04-22 14:11:53 1383

原创 mysql面试题八(SQL语句)

用于创建、修改和删除数据库对象(如表、视图、索引、存储过程等)。

2024-04-19 18:08:48 1088

原创 mysql面试题七(集群)

MySQL 中的异步复制(Asynchronous Replication)和半同步复制(Semi-Synchronous Replication)是两种不同的数据复制模式,它们决定了主库在处理客户端事务提交后的不同行为以及与从库数据同步的严格程度。总之,MySQL 主从复制通过复制主库的二进制日志到从库并执行,实现了数据的异步复制和分布式存储。MySQL 中有多种日志,它们各自承担着不同的功能,对于数据库的运行、故障诊断、数据恢复、性能分析和复制等都有着重要作用。导出主库数据导入从库。

2024-04-19 15:33:53 866

原创 mysql面试题六(视图,存储过程,触发器)

MySQL 中的存储过程(Stored Procedure)是一种预编译的数据库对象,它是一组 SQL 语句及相关控制结构(如条件分支、循环、变量声明等)的集合,封装在数据库中作为一个可调用的单元。存储过程可以接收输入参数、返回输出参数或结果集,并在数据库服务器端执行,提供了一种模块化、可复用且高效的数据处理方式。存储过程的特点预编译与执行效率:存储过程在创建时被编译一次,后续调用时无需重新编译,直接执行已编译的代码,提高了执行效率。模块化与复用性。

2024-04-19 14:31:26 851

原创 mysql面试题五(锁)

快照读就是读取的是快照数据,不加锁的简单 Select 都属于快照读。当前读就是读的是最新数据,而不是历史的数据。加锁的 SELECT,或者对数据进行增删改都会进行当前读。

2024-04-19 14:09:20 1006

原创 mysql面试题四(事务)

数据库的事务(Transaction)是在关系型数据库管理系统(如 MySQL)中,用于确保一组数据库操作在逻辑上被视为一个不可分割的整体,要么都执行,要么都不执行。Next-Key Locking 是 MySQL InnoDB 存储引擎在实现事务的可重复读(Repeatable Read)隔离级别时所采用的一种锁定机制,主要用于解决幻读(Phantom Read)问题。

2024-04-18 20:36:47 1005

原创 mysql面试题三(存储)

InnoDB是MySQL中一种广泛使用的存储引擎,其内部数据存储结构采用了分页、分区、分段的方式进行组织。1. 页(Page)基本单位:页是InnoDB存储引擎管理数据的基本单位,也是磁盘与内存之间进行数据交换的最小单位。每个页的大小通常是固定的(默认为16KB),并且在整个表空间中保持一致。内容:页中可以存储各种类型的数据,如表数据、索引数据、事务日志等。

2024-04-18 19:01:31 843

原创 mysql面试题二(索引)

聚簇索引和非聚簇索引是MySQL中两种重要的索引类型,它们的主要区别在于数据行是否按照索引键值的顺序进行物理存储。聚簇索引直接决定了数据的物理布局,对于查询性能有着重要影响,尤其在进行范围查询和需要直接访问数据行时。非聚簇索引提供了额外的访问路径,通常用于加速等值查询和覆盖索引查询,但涉及到回表操作时,查询效率可能低于聚簇索引。在设计数据库表结构时,应根据查询模式、数据更新频率、表大小等因素,合理选择和使用聚簇索引和非聚簇索引,以优化查询性能和存储效率。

2024-04-18 14:55:36 973

原创 Golang面试题五(GC)

根对象的子对象也是存活的,当任何一个根对象到某一个对象都无法可达时,那么这个对象就是可回收的。不能检测出循环引用,而且实时维护引用计数,有也一定的代价。(可达性分析)设立若干种。

2024-04-17 16:11:34 696

原创 Golang面试题四(GMP)

定义: Goroutine 是 Go 语言运行时系统(Runtime)管理的用户级线程(User-Level Thread),是一种可以在单个进程中并发执行的执行单元。每个 Goroutine 代表了一个独立的函数调用,可以在程序中并行地执行任务,而无需操作系统层面的线程(OS Thread)支持。关键特性轻量级:相较于操作系统原生线程,Goroutine 的创建、销毁和上下文切换(Context Switching)成本极低,使得开发者可以轻松地在程序中创建大量并发任务,实现高并发处理。协程。

2024-04-16 15:47:12 958 1

原创 Golang面试题三(并发编程)

sync.Once是一种用于确保一段代码在整个程序生命周期中仅被执行一次的同步工具。通过封装待执行的代码为一个回调函数,并通过调用,可以确保即使在并发环境下,该回调函数也能安全、高效地仅被执行一次。sync.Once常用于实现单例模式、延迟初始化、一次性设置全局状态等场景数据结构m Mutex原子操作(Atomic Operation)是指在计算机科学中,一个操作在执行过程中不会被其他操作(包括来自其他线程、进程或处理器核心的干扰)中断,能够以不可分割的单位从开始到结束完整地执行完毕。

2024-04-15 20:48:20 1614 1

原创 Golang面试题二(基础类)

浅拷贝:仅复制原始值和指针,不复制指针所指向的数据。新旧结构共享同一块内存区域,修改一方可能影响另一方。深拷贝:不仅复制原始值和指针,还递归复制所有引用类型所指向的数据。新旧结构拥有完全独立的内存区域,修改一方不会影响另一方。在实际编程中,应根据数据复制的目的和后续操作需求选择合适的拷贝方式,以避免意外的数据共享或不必要的性能开销。对于复杂的结构或不确定深度的嵌套数据,可能需要借助库函数(如等)或自定义递归函数来实现深拷贝。

2024-04-15 15:38:59 1324

原创 Golang面试题一(基础类)

CSP 理论最初由计算机科学家 Tony Hoare 在1978年提出,其核心思想是通过独立的并发实体(processes)通过严格的通信机制来协同工作,而不是直接共享内存。GoroutineGoroutine 是 Go 语言中实现并发编程的核心概念。它是一种轻量级的线程(或称协程),由Go 运行时(runtime)管理,而非操作系统直接调度。相比于传统的操作系统的线程,它是一种用户态线程,具有更低的创建和上下文切换开销,使得编写高并发、高性能的应用程序变得更加容易和高效。2.如何停止 Goroutine。

2024-04-14 22:04:12 953 1

kube-flannel

kube-flannel

2024-05-01

harbor离线安装包

harbor离线安装包

2024-04-30

k8s-kubeadm离线安装包

k8s-kubeadm离线安装包

2024-04-30

docker离线安装包

docker离线安装包

2024-04-30

JAVA程序员面试宝典 第4版-欧立奇

JAVA程序员面试宝典 第4版-欧立奇

2017-05-07

Java程序员面试笔试宝典-何昊pdf版

Java程序员面试笔试宝典-何昊pdf版

2017-05-06

简单ssh框架(适合开发及初学者了解ssh框架)

struts2 + hibernate + spring 简单的SSH2框架实现代码,供初学者学习,了解ssh2框架及搭建流程。

2014-11-09

空空如也

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

TA关注的人

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