PYQ Blog

「想成为真正的工程师」

置顶——博客收藏

Read Some Good Blogs

本篇博客旨在记录平时阅读到一些有用的网站、博客和文章,长期更新。 用了最简单的使这篇博客置顶的方法 : ) security Google has broken SHA-1 in practice. computer architecture CPU三级Cache operating systems & linux 通过fork函数来看Lin...

2024年终总结

The end of 2024

2024 今天是2024年的最后一天,按照这几年的惯例是时候对今年做个年终总结了(绝对不是我懒才拖到最后一天的bushi,其实去年也是最后一天写的x)。2024年过的真的特别快,因为除了冬季全年都超级忙。整年可以概括为【全心全意找工】、【匆匆忙忙开题】、【给甲方做项目做的心力交瘁】、【浑浑噩噩中期】和【阶段性的摆烂】。总体来看,2024年还是比较满意的,收获了很多,几个重要的目标也都完成了...

Slim Web Server

Introduction to Slim Web Server

本文是对个人项目 Slim Web Server的详细介绍。 Overview 主要特性: 利用标准库容器封装char,实现动态增长的字节流缓冲区; 利用锁、条件变量和队列实现单生产者消费者的阻塞队列; 利用单例模式与阻塞队列实现支持异步和同步的日志系统,记录服务器运行状态; 基于小根堆实现的定时器,关闭超时的非活动连接,节约系统资源; 利用RAII机制实现了...

Microservices Go-Zero

Introduction to microservices-go-zero

概览 本文是对个人项目 microservices-go-zero的详细介绍。 microservices-go-zero基于go-zero的民宿微服务系统,包括用户中心服务、民宿服务、订单服务和支付服务。 系统架构 业务架构 Feature 使用go-zero框架进行开发,稳定、高性能。 使用Nginx作为对外网关,前面可接入SLB负...

Container Hooks Toolkit

Introduction of Container Hooks Toolkit

本文是对个人项目 Containers Hooks Toolkit 的详细介绍。 Overview container-hooks-toolkit用于向容器的配置文件(config.json)中插入自定义的oci hooks,以实现在容器的不同生命周期进行细粒度的操作,组件包括: container-hooks-runtime container-hooks-ctk ...

K8s源码阅读—Kubelet创建容器流程(三)

How Kubelet Creates Containers Ⅲ

在K8s源码阅读—Kubelet创建容器流程(二)中我们将kubelet创建容器的流程推进到了容器运行时创建容器的阶段。 SyncPod (container runtime) SyncPod负责将当前Pod的运行状态同步到期望状态。这个过程包括了一系列的步骤,涉及到计算沙箱(sandbox)和容器的变化、杀死不必要的沙箱和容器、创建新的沙箱和容器等。下面是函数的主要步骤和逻辑: ...

K8s源码阅读—Kubelet创建容器流程(二)

How Kubelet Creates Containers Ⅱ

在K8s源码阅读—Kubelet创建容器流程(一)中对kubelet的启动流程进行了分析,在最终的入口函数中,kubelet通过kl.syncLoop(ctx, updates, kl)监听来自file/apiserver/http 事件源发送过来的事件,并对事件做出对应的同步处理。 通过上述3种事件源创建的pod亦有区别,可分为静态pod(static pod)和镜像pod(mir...

K8s源码阅读—Kubelet创建容器流程(一)

How Kubelet Creates Containers I

当我们在k8s master节点发起创建pod/deployment时,需要经过很多步骤,这里只记录步骤6-9: 提交请求:使用kubectl命令或Kubernetes API提交创建Pod或Deployment的请求时,该请求首先会发送到K8s-apiserver。 API服务器验证与授权:k8s-apiserver会验证请求的合法性(例如,检查请求的格式是否正确)并进行授权检...

Redis 入门

New to Redis

参考的视频教程 Redis介绍 早期的互联网服务主要通过MySQL等传统数据库提供服务,随着应用的访问量逐渐增大,数据库的性能瓶颈也越来越明显。这主要是磁盘I/O所导致,磁盘I/O的读写速度相较于内存是非常慢的。如果可以把这些数据存储在内存中,就可以大大增加性能,于是有了redis。Redis是一个开源的,基于内存的存储系统,它可以用作数据库、缓存和消息队列,是当前最热门的NoSQL数据...

Kubernetes 入门

New to Kubernetes

Kubernetes官方提供了十分详细且完整的教程,完整的去阅读学习下来需要耗费大量的时间。本篇博客旨在帮助阅读者可以快速入门和上手使用Kubernetes,只对基本的内容进行记录(不包括使用部分,都放一篇内容太多了x),更多细节可以翻阅官方手册对应部分。 参考的视频教程:Kubernetes一小时轻松入门——GeekHour Kubernetes简介 在Kubernetes(太长了,...