「深入学习 Golang」之 切片(slice)、数组(array)
数组
数组是由相同类型元素组合成的数据结构,计算机会为数组分配一块连续的内存来保存其中的元素。我们可以利用数组中元素的索引,快速访问元素对应的存储地址。
Go 语言中数组在初始化之后大小是无法改变的。存储元素类型相同,但大小不同的数组在 GO 语言中是完全不同的
...
「深入学习 Golang」之 GPM
相关术语runtimeruntime在 Golang 程序中很重要,runtime包含了调度、内存、垃圾回收、内部数据结构、定时器和各种系统调用的封装等。
schedulerscheduler是指调度器,主要工作是将准备好运行的Goroutine分散到工作线程中执行。
TLS(thread loca ...
2020.10.01 去「大陈岛」看海了
大陈岛分上大陈和下大陈,下大陈开发相对完善,一般住宿都会在下大陈,下大陈比较值得去的应该就是甲午岩景区,沿着峭壁一路走到到尽头是观景台,可以面朝大海,如果晴天可以在观景台看日出。上大陈新开发了乌沙头风景区(目前是免费开放,但需要提前预约,在公众号大美大陈,我去的时候人比较少所以没要查票,当然我也没预 ...
「深入学习 Golang」之 Goroutine
进程、线程、协程进程
进程是系统资源分配的最小单位
进程包括text region,data region和stack region等
进程的创建和销毁都是系统资源级别的,因此是一种比较昂贵的操作
进程是抢占式调度,他有三个状态:等待态、就绪态、运行态
进程之间是相互隔离的,每个进程有各自的系统资源 ...
「Kubernetes 拾遗」之 输入 kubectl run/create/apply 之后到底发生了什么
周四的时候参加我司容器组大佬的课,问到一个问题:
kubectl run nginx --image=nginx --replicals=3 当这行命令在终端敲下回车键之后你会看到很快有三个nginx pod创建在集群的worker节点上,但当敲下回车键的时候kubernetes背后都做了什么呢? ...
「Kubernetes 拾遗」之 K8S 基础知识
架构图
核心组件
API Server
用户唯一可以直接进行交互的 k8s 组件
提供了认证、授权、访问控制、api 注册和发现等机制
ETCD
集群数据库
存储了整个集群的配置和状态
Controller Manager
负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
S ...
「Kubernetes 拾遗」之 Probe(探针)
Kubernetes 中的健康检查是使用存活性探针和就绪性探针来实现的,基于这两种探测机制,实现了 k8s 的自愈能力。可以做到:
异常节点(pod)自动剔除,并重建
安全的滚动升级策略
存活性探针livenessProbe用于判断当前容器是否存活(running)状态,如果livenessPr ...
「深入学习 Golang」之 Channel
设计原理
不要通过共享内存的方式进行通信,而应该通过通信的方式共享内存。
在其他语言中,多个线程传递数据的方式一般是共享内存,为了解决线程的冲突就需要限制同一时间能够读写这些变量的线程数,在 go 语言中并不需要这么做,因为 Golang 提供了一种不同的并发模型,也就是通信顺序进程(Commun ...
Docker 基础
实现原理Namespace
namespace是Linux为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。
Docker 通过namespace完成了容器与宿主机、容器与容器间的隔离。
如果机器上运行了两个容器,对宿主机而言其实这两个容器就是两个特殊的进程
Cgroups
...
「MySQL 拾遗」之 增删查改
就只是把很多年前学的东西捡起来看一下,虽然对于一个研发工程师来说,这些都是再基本不过的知识了,但长时间不看呢记忆总会模糊。。。
连接数据库
mysql -h [数据库地址] -u [用户名] -p
bash123456789101112131415# 回车后输入密码⚡ mysql -h 12 ...