PYQ Blog

「想成为真正的工程师」

置顶——博客收藏

Read Some Good Blogs

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

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(太长了,...

Effective C++-让自己习惯C++

Accustoming Yourself to C++

视C++为一个语言联邦 今天的C++已经是个多重范型编程语言,一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。C++主要有4个次语言: C Object-Oriented C++(面向对象) Template C++ STL 其中对Template C++的学习和理解主要是为了更深入的去理解诸如STL这种库,毕竟我们大概率不会去接触自己写一...