自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes-Volume

Volume 是 Kubernetes 中实现存储管理的基础,emptyDir和hostPath临时共享用emptyDir;访问宿主机文件用hostPath(生产环境建议用更可靠的存储类型,如 PersistentVolume)。

2026-01-15 17:37:25 700

原创 Kubernetes-Downward API

Downward API 是 Kubernetes 中让 Pod “感知自身” 的轻量工具,通过环境变量或卷挂载的方式,可便捷地将 Pod 元数据、资源配置传递到容器内部。相比调用 Kubernetes API,它更简单、更可靠,是日常开发中获取 Pod 自身信息的首选方案。

2026-01-15 15:14:12 507

原创 Kubernetes-Secret

Secret 是 K8s 提供的敏感配置存储资源,用于存储密码、OAuth 令牌、SSH 密钥等敏感信息,相比 ConfigMap(存储非敏感配置),Secret 具备更严格的权限控制,且数据以 Base64 编码形式存储(注:Base64 是编码而非加密,需结合 RBAC / 加密配置提升安全性)。kind: Podmetadata:labels:spec:# 定义Secret卷volumes:secret:secretName: mysecret # 关联的Secret名称。

2026-01-15 14:02:11 732

原创 Kubernetes-ConfigMap

ConfigMap 是 K8s 提供的一种配置存储资源,用于存储非敏感的键值对配置(如配置文件、环境变量、命令行参数等),可被 Pod 以多种方式挂载使用。配置与镜像解耦:无需修改镜像即可调整应用配置;环境隔离:为开发、测试、生产环境配置不同的 ConfigMap;易维护:集中管理配置,修改后可快速同步到关联 Pod(视挂载方式而定)。ConfigMap 是 K8s 配置管理的核心工具,通过解耦应用与配置,大幅提升了配置管理的灵活性和可维护性。

2026-01-14 17:45:07 697

原创 Kubernetes-Service(2)

当客户端访问该Service的域名时,DNS解析会直接返回所有关联Pod的IP列表,客户端需要自行实现负载均衡逻辑(如DNS轮询、自定义分发策略)。:集群内部服务需要访问外部服务(如外部数据库、第三方API),通过Service统一管理外部服务的域名,后续若外部服务域名变更,只需修改Service配置,无需修改所有依赖该服务的内部应用,降低维护成本。:Service被分配一个集群内部唯一的虚拟IP(ClusterIP),仅能在集群内部访问(Pod、集群节点均可访问),无法被外部客户端直接访问。

2026-01-14 14:59:26 506

原创 Kurbenetes-Service(1)

在Kubernetes(简称K8s)的生态中,Pod是最小的部署单元,但Pod存在一个天然的“痛点”——生命周期短暂,IP地址会随着Pod的创建、销毁而动态变化。如果直接通过Pod IP访问应用,稳定性根本无法保障。这时候,Service就应运而生了。本文将从“为什么需要Service”出发,逐步深入讲解Service的核心概念、工作原理、常见类型及实战配置,帮你彻底搞懂Service在K8s集群中的作用和使用方式。

2026-01-14 14:57:02 307

原创 Kubernetes-Pod生命周期

在 Kubernetes(简称 k8s)的技术体系中,Pod 作为最小部署单元,其生命周期的管理是云原生开发与运维的核心知识点之一。掌握 Pod 生命周期的流转逻辑、关键机制及配置要点,是保障集群稳定运行、提升服务可用性的基础,本文将系统拆解 Pod 生命周期的核心内容,助力开发者全面掌握这一关键技术。

2026-01-12 16:00:13 482

原创 Kubernetes-控制器介绍

控制器类型核心场景关键特性ReplicaSet基础副本管理(少用)灵活标签选择器Deployment无状态应用部署滚动更新、版本回滚DaemonSet节点级任务每个节点一个 PodJob一次性批处理任务任务完成后终止CronJob定时任务基于 Cron 表达式调度有状态应用部署稳定身份、存储、网络HPA自动扩缩容基于指标动态调整副本数K8s 的控制器体系覆盖了从无状态到有状态、从一次性任务到长期服务的全场景需求,掌握它们的适用场景,是高效使用 K8s 的关键~

2026-01-09 14:16:06 670

原创 Kubernetes-资源清单(2)

在 Kubernetes(K8s)中,Pod 作为最小的部署和调度单元,其生命周期贯穿了 “创建→运行→终止→销毁” 的完整过程。理解 Pod 的生命周期,不仅能帮我们精准排查 Pod 启动失败、频繁重启等问题(如部署 TodoList 项目时遇到的 Pod 重启问题),更能通过生命周期钩子和探针设计高可用的应用部署策略。本文将从核心阶段、关键机制、实战案例三个维度,彻底讲透 Pod 生命周期。

2026-01-08 15:58:13 796

原创 Kubernetes-资源清单(1)

资源分类层面:区分名称空间 / 集群级别资源,避免在集群级别资源中指定 namespace(如 Node、PV 无需指定);YAML 语法层面:严格遵守缩进(空格)、冒号后加空格,数组元素以开头,避免低级语法错误;字段配置层面标签匹配是核心:Deployment 的 selector、Service 的 selector 必须与 Pod 的 labels 一致;端口匹配是关键:容器端口、Service 的 targetPort、应用实际监听端口三者必须统一;

2026-01-08 15:41:48 655

原创 Go 语言 TCP 编程:30 行代码实现一个回显服务

【代码】Go 语言 TCP 编程:30 行代码实现一个回显服务。

2025-12-25 09:40:15 158

原创 Go 语言 ioutil 包:一行代码搞定文件读写与目录遍历

包的 “工具扩展”,封装了高频 IO 操作(Go 1.16 + 部分功能迁移到。,但老版本仍常用)。

2025-12-25 09:39:41 189

原创 Go 语言 IO 基石:Reader 与 Writer 接口的 “最小设计” 与实战落地

go运行// 自定义Reader:读取文件的指定区间end int64pos int64if err!= nil {// 实现Reader接口// 移动到当前读取位置err!= nil {// 计算本次可读取的最大长度// 读取数据。

2025-12-25 09:37:11 119

原创 GO学习-io包常用接口

Go 语言io包接口,核心是,可分为和。

2025-12-24 16:13:45 298

原创 八股-2025.10.24

synchronized的”互斥“能力”依赖Monitor(监视器),可理解为一个“由JVM管理的,负责线程竞争的工具”,其本质是一个C++实现的对象(ObjectMonitor)。锁对象:手动指定的“任意对象”(需要是引用类型,如this,Class对象,自定义Object实例),锁粒度可精准控制)(只锁临界区,不锁整个方法)。C.读写锁:基于“读写分离”的优化锁,分为读锁(共享锁,多个线程可同时读)和写锁(排他锁,进一个线程可写),解决“读多写少”场景下的性能问题。例如扣库存时,SQL 写为。

2025-10-24 21:42:34 846

原创 八股-2025.10.20

在C++中通过public(公开接口),private(私有成员,仅内部访问),protect(保护成员,类内及子类访问)三种访问控制符实现。令牌桶有最大容量,多余令牌会溢出。I/O多路复用是操作系统提供的I/O模型,允许程序通过一个系统调用,同时监听多个文件描述符(如网络连接,文件,管道)。将数据(成员变量)和操作数据的方法(成员函数)捆绑在一起,隐藏对象的内部实现细节,仅通过公开的接口和外部交互。适用场景:连接数多,I/O就绪频率低的场景,例如Web服务器(Nginx),网关,即时通讯等场景。

2025-10-20 21:35:23 733

原创 八股-2025.10.14

Redssion是Redis的Java客户端,它封装了分布式锁的实现细节(解决了Redistribution原生实现的“锁过期,主从一致性和可重入”等问题),提供了“开箱即用”的分布式锁API。ZooKeeper是分布式协调工具,核心特性是“强一致性”(基于ZAB协议,数据写入后多节点同步完成才返回成功),其“临时有序节点”天然适合实现分布式锁。核心思路是“利用Redis的原子命令,实现”占坑“和”释放坑“的互斥逻辑,因为Redis是单线程模型,其原子命令能保证操作的唯一性。基于Redis,性能高;

2025-10-14 21:46:33 380

原创 八股-2025.10.12

占内存的生命周期与所在的作用域绑定,例如函数内的局部变量,当函数执行完毕胡,栈内存就会被释放,无法在作用域外访问;栈内存由编译器自动管理,遵循”先进后出“的原则,当函数调用时,局部变量和函数参数等会被自动压入栈中,函数执行结束后,这些内存会被自动弹出并释放,无需开发者手动干预;JDK1.8彻底放弃了“分段锁”,借鉴HashMap的“数组+链表/红黑树”结构,改用“CAS无锁操作+synchronized“实现线程安全,锁粒度细化到”哈希桶的头节点“,并发性能进一步提升。

2025-10-12 21:53:54 839

原创 八股-2025.10.11

一是为每个“有虚函数的类”生成一张独立的虚表。核心特性:多个shared_ptr可以管理同一块内存,内部通过引用计数机制管理-每增加一个指针指向该内存,计数+1,每销毁一个指针,计数-1,当计数为0时,释放该内存。主键索引(唯一且非空),普通索引,唯一索引(索引列的值必须唯一,但允许NULL),联合索引(基于多个列创建的索引),覆盖索引(索引包含查询所需的所有列)CAS机制:乐观锁的底层实现原理,核心逻辑是“先比较资源当前值是否等于预期值,若等于则交换为新的值,否则失败”,整个操作是原子性的。

2025-10-11 21:17:42 379

原创 八股-2025.9.28

核心逻辑是事务开启时,对读取的数据生成一个“一致性快照”(MVCC,多版本并发控制),后续读取均基于该快照,不受其他事务提交的修改的影响。c.RBD的优点是性能好,主进程无阻塞,rdb.是二进制文件,重启加载速度快,而且占用磁盘空间小。a.它的实现逻辑是触发快照时,Redis会通过fork创建一个子进程,子进程负责遍历内存数据并生成快照文件,而父进程则继续处理客户端请求。随着命令增多,.aof文件会变大,这时Redis会触发“重写“,把冗余命令合并,生成精简的新文件替换旧文件,避免磁盘占用过大。

2025-09-28 17:36:44 713

原创 八股-2025.9.27

服务器发送SYN+ACK(标志位SYN=1,ACK=1,复合标志),Ack=x+1(确认号,等于客户端的Seq加1,表示”我已收到你Seq=x的数据包,下次请发+1开始的数据“),Seq=y(服务器生成的初始序列号,与客户端的x无关)客户端发送ACK包(标志位ACK=1),Ack=w+1(确认号,等于服务器FIN包的Seq+1,表示”我应经收到你关闭发送通道的通知,现在双方都没有要发送的数据了“),Seq=u+1(客户端当前的序列号,基于第一次挥手递增)

2025-09-28 14:53:21 505

原创 力扣HOT100-跳跃游戏II

用current_end记录本次跳跃可到的最远位置,记录每个位置可跳跃到的最远位置,用它们的最大值不断更新fastest。这样当i==current_end时,fastest的值就是本次跳跃中可到达的下次跳跃的最远位置,直接用fastest更新current_end,最终得到的times就是到达n-1位置的最小跳跃次数。因此整体时间复杂度为 O (n),其中 n 是数组 nums 的长度。这些变量的数量与输入规模 n 无关,不随 n 的变化而变化。循环内部的操作(比较、赋值等)都是常数时间 O (1)

2025-09-26 20:57:46 307

原创 八股(9.26)

查询效率稳定:无论查询到哪个关键字,都必须遍历到叶子节点,因此所有的查询时间复杂度为O(logn),避免B树中“部分查询可能在非叶子节点就结束”导致的效率不稳定问题。叶子节点有序且相连:B+树的非叶子节点仅作为索引目录(不存储实际数据),所有实际数据(或主键指针)都存储在叶子节点中,且叶子节点之间通过双向链表连接。相比二叉搜索树:普通二叉树可能退化为链表(查询效率O(n)),即使是平衡二叉树(如AVL树,红黑树),其高度仍远高于B+树,磁盘I/O次数过多。且范围查询需要回溯,效率低。

2025-09-26 19:39:34 736

原创 面经汇总(1)

12.ping和telnet两个命令之间有什么区别,使用场景有什么不同?11.怎么保障一段逻辑或者一个请求在并发处理情况下的线程安全性?5.如果四次挥手第四次客户端的ACK没有发出去会有什么结果?14.http 和 http 协议之间有什么区别呢?15.什么是关系型数据库?什么是非关系型数据库呢?10.介绍对象存储以及常见的对象存储方式。16.常见的关系型数据库有哪些呢?3.介绍TCP/UDP区别。8.主要的线程池有哪几种?18.手撕最大连续子数组和。6.介绍MYSQL的事务。2.介绍常见的排序算法。

2025-09-17 16:54:29 149

原创 力扣刷题HOT100——跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。true可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。false无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。采用,核心思想是,并在遍历数组的过程中不断更新这个位置。,表示初始时能到达的最远位置是下标0。ii。

2025-07-24 19:24:45 408

原创 力扣刷题HOT100——394.字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:,表示其中方括号内部的正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。"aaabcbc"

2025-07-24 16:51:43 356

原创 力扣刷题HOT100——155.最小栈

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()

2025-07-24 15:32:15 294

原创 力扣刷题——二分查找总结

我们可以总结出二分查找的通用做法和常见变种。二分查找是一种在有序数组中高效查找元素的算法,时间复杂度为 O (log n)。二分查找的核心思想是将搜索范围不断缩小一半,直到找到目标元素或确定其不存在。以下是通用模板:cpp。

2025-05-11 19:00:16 432

原创 力扣HOT100——207.课程表

你这个学期必须选修numCourses门课程,记为0到。在选修某些课程之前需要一些先修课程。先修课程按数组给出,其中,表示如果要学习课程ai则先学习课程bi。[0, 1]01请你判断是否可能完成所有课程的学习?如果可以,返回true;否则,返回false。true总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。这是可能的。

2025-04-30 16:18:42 542

原创 力扣HOT100——102.二叉树层序遍历

给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。

2025-04-26 22:56:09 485

原创 Myweb项目——面试题总结

在 main 函数中,调⽤ create_socket 创建服务器套接字, 使⽤ accept 接收客⼾端连接,并为每个客⼾端创建独⽴线程,调⽤ fun 函数 处理请求,通 过 pthread_create 实现多线程并发处理,提⾼服务器的并发处理能⼒,避免客⼾端请求阻塞。前端开发:设计了具有吸引⼒的主⻚和 404 ⻚⾯,呈现了醒⽬的标题,添加了背景⾳乐和背 景图⽚,展⽰了歌⼿信息,使⽤表格和超链接展 ⽰歌⼿的专辑封⾯图⽚,这些图⽚链接到⽹易 云⾳乐的相应专辑⻚⾯,⽅便⽤⼾跳转查看更多信息。

2025-04-26 22:10:37 713

原创 内存池管理项目——面试题总结

伙伴系统算法实现:定义WORD b结构体⽤于表⽰内存块,含前驱指针llink、标识tag、块⼤⼩幂次kval和后继指针rlink;MyFree函数判断释放块与伙伴块状态,合并空闲伙伴块后将其插⼊相应可利⽤空间链表;Show函数输出占⽤块信息,ShowPav函数输出 可利⽤空间表中所有空闲块信息。通过InitMem函数初始化内存池, 在内存池前后添加 “墙” 防⽌越界;项⽬概述:本项⽬通过实现⾸次拟合法和伙伴系统算法,完成对内存池的管理,旨在为程序提供⾼效、合理的内存分配与回收机制,优化内存使⽤效 率。

2025-04-26 22:05:26 921

原创 腾讯一面-软件开发实习-PC客户端开发方向

介绍了专辑鉴赏项目,前端使用html语言编写,后端基于http协议使用C语言进行网页开发。此外,还提及项目中涉及处理多线程问题以及做过内存池管理项目。

2025-04-21 20:53:57 798

原创 力扣刷题HOT100——53.最大子数组和

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。

2025-04-15 20:36:38 390

原创 力扣刷题HOT100——239.滑动窗口的最大值

给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值。

2025-04-15 16:43:26 187

原创 力扣HOT100——560.和为k的子数组

给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。2前缀和+哈希。我们可以先利用一个数组s存储原数组的前缀和,在遍历s的时候利用一个哈希tmp来记录当前元素s[i]出现的次数,同时寻找它们tmp中是否存在是s[i]-k,如果存在,则答案ans加上tmp[s[i]-k],即s[i]-k此前出现的次数。

2025-04-15 11:06:12 281

原创 力扣刷题HOT100——438.找到字符串中所有字母异位词

给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。[0,6]起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。

2025-04-14 20:31:59 397

原创 力扣HOT100——无重复字符的最长子字符串

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。

2025-04-14 19:29:20 326

原创 力扣HOT100——最长连续序列

给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

2025-04-11 17:31:41 194

原创 力扣HOT100——49.字母异位词分组

给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。strs =

2025-04-11 16:43:56 175

空空如也

空空如也

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

TA关注的人

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