kubernetes 基本使用

当容器较少的时候,可以使用docker进行手动管理,但是如果容器很多,每个容器为了容灾还有很多副本以集群方式运行,并且各个容器集群之间有错综复杂的通信连接,那么此时就能使用k8s进行管理了。 它可以根据你的配置,自动维护集群和系统的稳定,例如当集群中的一个容器副本下线后,它会根据配置立即重新创建一个容器顶上。它可以将一个集群统一暴露成一个ip,再由内部的负载 …

git rebase VS merge

代码从commit init处分为了两个分支,branch1和branch2,它们上面分别有各自的commit,c1、c2 和 c3、c4 此时切换到 branch1 处,并执行 git rebase branch2 就会这样: 大概就是:将要rebase分支上的提交作为当前分支的基,然后将当前分支上的提交都生成一个新的提交建立在新的基上。所以rebase被 …

git回滚操作

图来源:https://blog.osteele.com/2008/05/my-git-workflow/ git中有一棵树、两个区、两类指针 一棵树:版本树,它将代码的每个版本打包串起来,某些版本可能会有分支,他们就共同构成一棵树 两个区:工作区和暂存区 工作区:就是你当前项目目录 暂存区:版本树是一个大仓库,但我并不希望每次代码改动都做成一个版本提交到 …

python的闭包简介

LEGB法则 python变量的作用域遵从LEGB法则,即: Local(L):定义在方法或类内部的变量,如 def 或 lambda 函数内部 Enclosed(E):闭包内部变量(仅限闭包) Global(G):全局变量 Built-in(B):python内置的关键字 对任意一个变量,python会按照上述顺序依次查找 这意味着python中有且仅有这 …

Golang基础知识

优势 简单的部署方式 可直接编译成机器码 不依赖其他库 直接运行即可部署 静态类型语言 编译的时候检查出大多数的问题 语言层面的并发 强大的标准库 runtime系统调度机制 高效的GC垃圾回收 丰富的标准库 简单易学 25个关键字 c语言支持 面向对象 跨平台 成就 Docker Kubernetes 缺点 包管理,大部分都托管在github上 无泛化类型 …

使用Go module创建项目

项目实例 最终目录结构 创建项目目录 创建一个目录作为项目根目录(目录名随意,我这里使用 go_practice ),在在其下面创建一个子目录(sub_pkg)用于演示package的引用方式 初始化GOMODULE 在 go_practice 目录下执行命令 go mod init hunt/practice 其中 hunt/practice 是该 …

软件版本Alpha、Beta、RC、GA、Release解惑

Alpha(α内测版):Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用.是希腊字母的第一位,表示最初级的版本。alpha 就是α,beta 就是β,alpha 版就是比beta还早的测试版,一般都是内部测试的版本。 Beta(β公测版):该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一缺陷,需 …

线程安全与锁优化

多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调用和交替执行,也不需要额外的同步,或者在调用方进行任何协调操作,都能获得正确的结果,那么这个对象是线程安全的 可以将java语言中的各种操作共享数据分为5类 不可变:Immutable对象、String或被finnal修饰的基本数据类型。对引用类型,只要其地址不变,且其不会暴露出影响其状态的方法 …

正则匹配a,b之间的内容

比如我想匹配 <a>bingo</a> 中的 bingo 可以使用正则 (?<=<a>).*(?=<\a>) 其中的(?<=X)为正后发断言,(?=X)为正先行断言,断言只是条件,帮助你找到需要的字符串,本身不会被匹配到结果中 规则 描述 (?=X) 零宽度先行断言,匹配右侧有表达式X (?!X) 零宽度负先行断言,匹配右侧没有表达式X (?<=X) 零宽度 …