×
请登录
账号
密码
登录 Use it
代码正能量
登录
认识 Kubernetes
为什么我们需要 Kubernetes,它能做什么? 最基础的,Kubernetes 可以在物理或虚拟机集群上调度和运行应用程序容器。然而,Kubernetes 还允许开发人员从物理和虚拟机’脱离’,从以主机为中心的基础架构转移到以容器为中心的基础...
olivee
k8s架构
5年前
2019-09-27 16:16
318
0
Kubernetes设计架构
没有云控制器管理器的 Kubernetes 集群的架构 云控制器管理器(cloud controller manager,CCM)整合后架构 此图重要 云控制器管理器(cloud controller manager,CCM)这个概念 (不要...
olivee
k8s架构
5年前
2019-09-26 17:07
325
0
kubernetes设计理念
Kubernetes设计理念与分布式系统 分析和理解Kubernetes的设计理念可以使我们更深入地了解Kubernetes系统,更好地利用它管理分布式部署的云原生应用,另一方面也可以让我们借鉴其在分布式系统设计方面的经验。 API设计原则 对于...
olivee
k8s架构
5年前
2019-09-26 16:37
308
0
起源
参考https://www.kubernetes.org.cn/k8s 大规模容器集群管理工具,从Borg到Kubernetes 在Docker 作为高级容器引擎快速发展的同时,Google也开始将自身在容器技术及集群方面的积累贡献出来。在Goo...
olivee
k8s架构
5年前
2019-09-26 15:51
290
0
k8s常用网站
知识图谱 https://www.processon.com/view/link/5ac64532e4b00dc8a02f05eb#map 国内网站 k8s中文网 https://www.kubernetes.org.cn k8s中文文档 ht...
olivee
k8s参考资料
5年前
2019-09-26 11:22
339
0
chan并发陷阱
并发写通道陷阱 如果想用chan作为队列先进先出,不能用多线程写一个chan 多个线程同时写,可能后写的线程,先写入chan,导致数据顺序混乱 注意:尽量避免多个线程写一个chan,如果启用了线程,注意关闭线程。最好不要多线程写一个队列性质的ch...
olivee
go陷阱
5年前
2019-08-27 17:39
291
0
tcp网络流陷阱
buffer陷阱 重复调用bufio.NewReader(conn)可能导致第二读取时,第一次读取的包丢失 以下代码第一行可能有问题 func ReadSafeTCPData(conn *net.TCPConn) ([]byte, error)...
olivee
go陷阱
5年前
2019-08-27 17:35
304
0
字符串与基本类型转换
package main import ( "encoding/hex" "fmt" "strconv" ) func main() { fmt.Println("-------字符串转Bool--------") fmt.Println(str...
olivee
基础
5年前
2019-08-14 19:35
275
0
自定义线程池
package main import "fmt" import "time" func worker(id int, jobs <-chan int, results chan<- int) { for j := range job...
olivee
多线程
5年前
2019-08-08 22:29
271
0
并发操作sync.Mutex、并发计数(用atomic包)
1用sync.Mutex var mutex = &sync.Mutex{} mutex.Lock()//开始锁定 //执行一些并发操作 mutex.Unlock()//结束锁定 2 用atomic包 package main impo...
olivee
多线程
5年前
2019-08-08 22:21
263
0
执行速度限制time.Tick(每隔xx时间执行一次)
package main import "time" import "fmt" func main() { requests := make(chan int, 5) for i := 1; i <= 5; i++ { requests &...
olivee
多线程
5年前
2019-08-08 21:51
294
0
等待线程全部执行完成sync.WaitGroup
package main import ( "fmt" "sync" "time" ) func worker(id int, wg *sync.WaitGroup) { fmt.Printf("Worker %d starting\n", id...
olivee
多线程
5年前
2019-08-08 20:48
273
0
range循环读取chanel
range读取close的chanel package main import "fmt" func main() { queue := make(chan string, 3) queue <- "one" queue <- "tw...
olivee
chanel
5年前
2019-08-08 20:30
294
0
close关闭通道
内建的close方法可以用来关闭channel。 总结一下channel关闭后sender的receiver操作。 如果channel c已经被关闭,继续往它发送数据会导致panic: send on closed channel: import...
olivee
chanel
5年前
2019-08-08 15:43
339
0
读取通道超时time.After,定时器Timer和Ticker,同步
读取通道超时time.After select有很重要的一个应用就是超时处理。 因为上面我们提到,如果没有case需要处理,select语句就会一直阻塞着。这时候我们可能就需要一个超时操作,用来处理超时的情况。 下面这个例子我们会在2秒后往cha...
olivee
chanel
5年前
2019-08-08 15:36
443
0
chanel语法基础
1通道定义 // var 通道变量名 chan 通道数据类型 var cn chan string 2初始化 // make(chan 通道数据类型,容量) cn = make(chan string, 100) make的第二个参数指定缓存...
olivee
chanel
5年前
2019-08-08 13:51
313
0
select读取通道场景测试
select 语法 select case must be receive, send or assign recv select中的case条件必须是接收、发送、或者给接收赋值 如 var cn chan string select { ca...
olivee
chanel
5年前
2019-08-08 13:00
304
0
非阻塞的消息(通道满无法写,或者没有数据可读)
通道写满了,丢弃消息 package main import "fmt" func main() { ca := make(chan string, 2) ca <- "str1" fmt.Printf("put to chanel str...
olivee
chanel
5年前
2019-08-08 11:27
297
0
如果主线程和所有子线程都阻塞,则程序报错并退出
1如果主线程和所有子线程都阻塞 如果主线程和所有子线程都阻塞,则程序报错(fatal error: all goroutines are asleep - deadlock!)并退出 package main import "fmt" func ...
olivee
chanel
5年前
2019-08-08 11:15
229
0
修改file创建时间、修改时间等
1主要代码参考 BasicFileAttributeView attributes = Files.getFileAttributeView(Paths.get(f.getAbsolutePath()), BasicFileAttributeVi...
olivee
java-core
5年前
2019-04-11 19:28
269
0
上一页
1
...
4
5
6
7
下一页
文章树
热门文章
1.
spring源码主要ioc和aop部分源码
2.
Spring事务传播机制总结及源码解读
3.
sping源码debug方法
4.
docker基础镜像(base image):scratch 、 busybox 、 alpine
5.
k8s中master节点的kubelet服务启动日志分析-1(kubelet日志部分)
6.
★★★手动完全模拟calico网络(IP隧道 + BIRD)
最新发布
1.
spring源码主要ioc和aop部分源码
2.
sping源码debug方法
3.
Spring事务传播机制总结及源码解读
4.
为什么要做技术管理
5.
SpringBoot 中 Transactional mybatis 事务
6.
mysql索引