摘要: 一、map 是什么 map 是 Go 中用于存储 key-value 关系数据的数据结构,类似 C++ 中的 map,Python 中的 dict。Go 中 map 的使用很简单,但是对于初学者,经常会犯两个错误:没有初始化,并发读写。 1、未初始化的 map 都是 nil,直接赋值会报 panic 阅读全文
posted @ 2022-05-30 00:08 踏雪无痕SS 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 一、哪些类型可以作为map的key ? 1、可比较的类型都可以作为map key boolean 布尔值 numeric 数字 包括整型、浮点型,以及复数 string 字符串 pointer 指针 两个指针类型相等,表示两指针指向同一个变量或者同为nil channel 通道 两个通道类型相等,表 阅读全文
posted @ 2022-05-30 00:07 踏雪无痕SS 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 一、关于struct {} struct是Go中的关键字,用于定义结构类型 type User struct { Name string Age int } struct {} :表示struct类型 struct {} 是一种普通数据类型,一个无元素的结构体类型,通常在没有信息存储时使用。 优点是 阅读全文
posted @ 2022-05-28 20:25 踏雪无痕SS 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 一、 介绍 容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引用了Volume的概念。 Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上, 阅读全文
posted @ 2022-05-04 20:09 踏雪无痕SS 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 一、Kubernetes安装系统初始化 1、设置系统主机名 hostnamectl set-hostname k8s-master01 2、配置Host文件 192.168.16.208 node01 192.168.16.153 node03 192.168.16.116 node02 192.1 阅读全文
posted @ 2022-05-01 18:46 踏雪无痕SS 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 一、kubernetes的前生今生 Kubernetes(简称k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务发 阅读全文
posted @ 2022-04-30 13:34 踏雪无痕SS 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 一、Docker的网络概念 docker受一个github上的issue启发,引入了容器网络模型(container network model,CNM),容器网络模型主要包含了3个概念 network:网络,可以理解为一个Driver,是一个第三方网络栈,包含多种网络模式:单主机网络模式(none 阅读全文
posted @ 2022-04-13 00:57 踏雪无痕SS 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 在使用 go 这样的强类型语言时,我们常常会遇到类型转换的问题。比如 int 类型转 int64,interface{} 转 struct ,对一种类型取指针、解指针等等。今天在这篇文章中我们就来梳理一下,我们在 go 的日常使用中常碰到的几个类型转换场景。 go存在4种类型转换分别为:断言、强制、 阅读全文
posted @ 2021-10-18 00:10 踏雪无痕SS 阅读(958) 评论(0) 推荐(1) 编辑
摘要: 一、标准日志库log 在日常开发中,日志是必不可少的功能。虽然有时可以用fmt库输出一些信息,但是灵活性不够。Go 标准库提供了一个日志库log。 1、快速使用 log是 Go 标准库提供的,不需要另外安装 package main import ( "log" ) type User struct 阅读全文
posted @ 2021-10-10 17:07 踏雪无痕SS 阅读(1400) 评论(0) 推荐(0) 编辑
摘要: 在 Golang 里有专门的方法来实现锁,就是 sync 包,这个包有两个很重要的锁类型 一个叫 Mutex, 利用它可以实现互斥锁。一个叫 RWMutex,利用它可以实现读写锁。 特别说明: sync.Mutex 的锁是不可以嵌套使用的 sync.RWMutex 的 RLock()是可以嵌套使用的 阅读全文
posted @ 2021-10-03 12:48 踏雪无痕SS 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 一、通过结构(struct) 实现 接口(interface) 1、在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为接收器,来调用方法,有点好奇这样做有什么意义。 解释:在 Go 语言中,一个 struct 实现了某个接口里的所有方法,就叫做这个 struct 实现了该接口。 2、 阅读全文
posted @ 2021-10-02 13:44 踏雪无痕SS 阅读(1744) 评论(0) 推荐(1) 编辑
摘要: 一、了解一些概念 Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能。不用多说,log支持并发操作(即协程安全-相对于JAVA中的线程安全而言),其结构定义如下: type Logger struct { mu sync.Mutex // ensures atomic writes; 阅读全文
posted @ 2021-10-01 23:23 踏雪无痕SS 阅读(445) 评论(0) 推荐(0) 编辑
摘要: time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 time 类型 type Time struct { // wall and ext encode the wall time seconds, wall time nanoseconds, // and optional mono 阅读全文
posted @ 2021-10-01 11:34 踏雪无痕SS 阅读(3183) 评论(0) 推荐(0) 编辑
摘要: 众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办? 这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下 在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?): 代码如下: package main import ( "fmt" "log 阅读全文
posted @ 2021-10-01 11:19 踏雪无痕SS 阅读(383) 评论(1) 推荐(0) 编辑
摘要: linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。 /etc/security/limits.conf 配置文件可限制文件打 阅读全文
posted @ 2020-10-06 16:19 踏雪无痕SS 阅读(799) 评论(0) 推荐(0) 编辑