centos 7 安装GoLand

centos 7  安装GoLand

1、下载解压 [root@zdwork src]# pwd /usr/local/src [root@zdwork src]# tar zxf goland-2019.2.3.tar.gz 2、创建桌面快捷方式 vim /root/桌面/goland.desktop 内容如下: [root@zdwork ~]# cat 桌面/goland.desktop [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=JetBrains GoLand 2019.2.3 Type=Application Terminal=false Name[en_U...

golang 获取目录下的路径、文件名、目录名

golang 获取目录下的路径、文件名、目录名

package main import ( "os" "io/ioutil" "fmt" "log" "path/filepath" ) func main() { pwd,_ := os.Getwd() // 获取目录下的文件和目录名 getFileAndDirName(pwd) // 获取当录下的文件和目录的路径 getFileAndDirPath(pwd) // 递归获...

golang 比较slice/struct/map 是否相等

golang 比较slice/struct/map 是否相等

package main import ( "fmt" "reflect" ) type A struct { s string } func main() { a1 := A{s: "abc"} a2 := A{s: "abc"} if reflect.DeepEqual(a1, a2) { fmt.Println(a1, "==", a2) } b1 := []int{1, 2} b2 := []int{1, 2} if...

golang base64的编码和解码

golang base64的编码和解码

demo: package main import ( "encoding/base64" "fmt" ) func main() { /* StdEncoding: 常规编码 URLEncoding: URL safe 编码 RawStdEncoding: 常规编码,末尾不补 = RawURLEncoding: URL safe 编码,末尾不补 = */ msg := []byte("Hello world. 哈喽 沃尔德") ...

golang 字符串,gizp 压缩、解压缩

golang 字符串,gizp 压缩、解压缩

demo package main import ( "bytes" "compress/gzip" "encoding/binary" "io/ioutil" "fmt" ) func main() { // 压缩 c, _ := createGzip([]byte("zdwork")) fmt.Println(c.String()) // 解压缩 p, _ := parseGzip(c.Bytes()) ...

golang 捕获进程信号

golang 捕获进程信号

注意:SIGKILL信号是不能被捕获的 demo: package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { ch := make(chan os.Signal, 1) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGUSR2, syscall.SIGKILL) for { sig := &l...

gin 使用笔记

gin 使用笔记

基于httprouter开发的web框架 https://github.com/julienschmidt/httprouter gin 项目地址 https://github.com/gin-gonic/gin 1、快速启动一个web应用 package main import "github.com/gin-gonic/gin" func testHandle(c *gin.Context) { c.Request.Cookie("") c.JSON(200, gin.H{ "message&...

kubernetes ingress-nginx 金丝雀发布

kubernetes ingress-nginx 金丝雀发布

流程如下: 1、v1.0 版本正在提供流量 2、部署 v2.0 版本 3、创建一个新的 “金丝雀” ingress,启用流量分割 4、观察 v2.0 版本是否稳定并且不会引发意外错误 5、删除金丝雀入口 6、正式发布 v2.0 版本 1、部署 v1.0 # cat app-v1.yaml apiVersion: v1 kind: Service metadata: name: my-app-v1 labels: app: my-app spec: ports...

kubernetes ingress-nginx 安装和简单使用

kubernetes ingress-nginx 安装和简单使用

1、安装 使用hostNetwork模式,yaml如下: apiVersion: v1 kind: Namespace metadata: name: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx --- kind: ConfigMap apiVersion: v1 metadata: name: nginx-configuration namespace: ingress-nginx labels: a...

kubernetes Container Lifecycle Hooks

kubernetes Container Lifecycle Hooks

容器中有两个钩子: 1、PostStart 这个钩子在容器创建后立即执行。 但是,并不能保证钩子将在容器ENTRYPOINT之前运行。 没有参数传递给处理程序。 2、PreStop 这个钩子在容器终止之前立即被调用。 它是阻塞的,意味着它是同步的, 所以它必须在删除容器的调用发出之前完成。 钩子处理程序的实现 容器可以通过实现和注册该钩子的处理程序来访...