从一个例子入手Istio

转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5。 本篇是Istio系列的第一篇,希望大家接下来能和我一起学习进步。 封面图是Klegs的作品,颜色有一种深邃感,我很喜欢。这篇文章是Is ... »

16.深入k8s:Informer使用及其源码分析

转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 由于这部分的代码是在client-go 中,所以使用的源码版本是client-go 1.19 这次讲解我用了很一些图,尽可能的把这个模块给描述清楚,如果感觉对你有所帮助不妨发一封邮件激励一 ... »

15.深入k8s:Event事件处理及其源码分析

转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 概述 k8s的Event事件是一种资源对象,用于展示集群内发生的情况,k8s系统中的各个组件会将运行时发生的各种事件上报给apiserver 。可以通过kubectl ... »

14.深入k8s:kube-proxy ipvs及其源码分析

转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 这一篇是讲service,但是基础使用以及基本概念由于官方实在是写的比较完整了,我没有必要复述一遍,所以还不太清楚的小伙伴们可以去看官方的文档:https://kube ... »

12.深入k8s:kubelet创建pod流程源码分析

转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 在上一篇中,我们知道在kubelet中,工作核心就是围绕着整个syncLoop来完成不同的工作的。syncLoop会根据不同的上报信息管理pod的生命周期,这些操作都是 ... »

Kafka源码解析(二)---Log分析

上一篇文章讲了LogSegment和Log的初始化,这篇来讲讲Log的主要操作有哪些。 一般来说Log 的常见操作分为 4 大部分。 高水位管理操作 日志段管理 关键位移值管理 读写操作 其中关键位移值管理主要包含Log Start Offset 和 LEO等。 高水位HighWatermark 高 ... »

从JRaft来看Raft协议实现细节

分布式系统和一致性问题 一致性问题(consensus problem)是分布式系统需要解决的一个核心问题。分布式系统一般是由多个地位相等的节点组成,各个节点之间的交互就好比几个人聚在一起讨论问题。让我们设想一个更具体的场景,比如三个人讨论中午去哪里吃饭,第一个人说附近刚开了一个火锅店,听说味道非常 ... »

Linux的文件系统及文件缓存知识点整理

Linux的文件系统 文件系统的特点 文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。 文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。 如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层。 文件应该用文件夹的形式组织起来,方便管理和 ... »

Spark基础全解析

我的个人博客:https://www.luozhiyun.com/ 为什么需要Spark? MapReduce的缺陷 第一,MapReduce模型的抽象层次低,大量的底层逻辑都需要开发者手工完成。 第二,只提供Map和Reduce两个操作。 举个例子,两个数据集的Join是很基本而且常用的功能,但是 ... »

计算机组成原理(四)

内存 内存是五大组成部分里面的存储器,我们的指令和数据,都需要先加载到内存里面,才会被CPU拿去执行。 我们的内存需要被分成固定大小的页(Page),然后再通过虚拟内存地址(Virtual Address)到物理内存地址(Physical Address)的地址转换(Address Translat ... »

计算机组成原理笔记(三)

我的博客 : https://www.luozhiyun.com/ 超线程 超线程的CPU,其实是把一个物理层面CPU核心,“伪装”成两个逻辑层面的CPU核心。这个CPU,会在硬件层面增加很多电路,使得我们可以在一个CPU核心内部,维护两个不同线程的指令的状态信息。 比如,在一个物理CPU核心内部, ... »

计算机组成原理笔记(二)

我的博客: https://www.luozhiyun.com/ 浮点数和定点数 我们先来看一个问题,在Chrome浏览器里面通过开发者工具,打开浏览器里的Console,在里面输入“0.3 + 0.6”: 下面我们来一步步解释,为什么会这样。 定点数 如果我们用32个比特表示整数,用4个比特来表示 ... »

计算机组成原理(一)

CPU性能 响应时间:指的就是,我们执行一个程序,到底需要花多少时间。花的时间越少,自然性能就越好。 吞吐率:在一定的时间范围内,到底能处理多少事情。这里的“事情”,在计算机里就是处理的数据或者执行的程序指令。 我们一般把性能,定义成响应时间的倒数,也就是: 性能 = 1/响应时间 程序运行的时间 ... »

OpenResty学习指南(二)

我的个人博客:https://www.luozhiyun.com/ 数据结构table table并没有区分开数组、哈希、集合等概念,而是揉在了一起。 table 库函数 获取元素个数 对于序列,用table.getn 或者一元操作符 ,就可以正确返回元素的个数。 不是序列的 table,就无法返回 ... »

OpenResty学习指南(一)

我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式; 不同阶段的作用; LuaJIT 和 Lua 的不同之处; OpenResty API 和周边库; 协程和 cosocket; ... »

Java程序员学习Go指南(终)

我的博客:https://www.luozhiyun.com/archives/215 context.Context类型 Context类型可以提供一类代表上下文的值。此类值是并发安全的,也就是说它可以被传播给多个 goroutine。 Context类型的值(以下简称Context值)是可以繁衍 ... »

Java程序员学习Go指南(二)

摘抄:https://www.luozhiyun.com/archives/211 Go中的结构体 构建结构体 如下: 我们在Go中一般构建一个结构体由上面代码块所示。AnimalCategory结构体中有7个string类型的字段,下边有个名叫String的方法,这个方法其实就是java类中的to ... »

Java程序员学习Go语言—之一

转载:https://www.luozhiyun.com/archives/206 GOPATH 工作空间 GOPATH简单理解成Go语言的工作目录,它的值是一个目录的路径,也可以是多个目录路径,每个目录都代表Go语言的一个工作区(workspace)。 在GOPATH放置Go语言的源码文件(sou ... »

2019年年度总结

总结 2019年过的很匆忙,感觉一直在寻找一个目标,但是却不知道那个目标是什么。 “我的价值是什么”这个问题是我今年一直在想的问题,也是我一直想要做好的事情。所以这导致了我的2019过的很匆忙,也一直在试错。我一直都想找个有价值的事情做下去,坚持下去,如果一件事对自己没有增值空间,那么应该放弃的时候 ... »