
golang
文章平均质量分 58
Jinhua_Wei
这个作者很懒,什么都没留下…
展开
-
golang 输出重定向:fmt Log,子进程Log,第三方库logrus
独立 fmt Log输出重定向golang的fmt包的输出函数 Println、Printf、PrintStack等,默认将打印输出到os.Stdout、错误打印输出到os.Stderr,os.Stdout 和 os.Stderr 默认值 /dev/stdout /dev/stderr 设备。//代码摘自:golang封装包 -> /lib/golang/src/osvar ( ...原创 2018-02-26 14:15:51 · 7420 阅读 · 0 评论 -
RunC 学习笔记 - 获取容器资源
原创 2018-05-09 07:49:47 · 615 阅读 · 0 评论 -
docker代码探究 函数queue探究
今天探究 DOCKER 的源码,发现了一段有意思代码,探究了一会,将结果记录下来代码目的docker daemon 接受来自containerd 的grpc消息,并针对依次处理。这段代码出自依次处理过程;代码://libcontainer/container_linux.gotype queue struct { sync.Mutex fns ma...原创 2018-04-05 11:26:14 · 298 阅读 · 0 评论 -
dockerd、contaierd、containerd-shim、runC通信机制分析
整体框架分析dockerd 底层运行容器需要依赖多个二级制组件:docker daemon, containerd, container-shim, runC, 代码实现上,containerd包含了container-shim代码。同一份代码,通过Makefile编译控制,编译成两个二级制文件。组件间通信概括图 通信流程: 1. docker daemon 模块通过 g...原创 2018-04-09 23:24:25 · 11983 阅读 · 0 评论 -
golang实现高度平衡二叉树(AVL树)
AVL树简介AVL 树是高度相对平衡(abs(height(node.lchild - height(node.rchild) < 2))的二叉搜索树。它和二叉搜索树主要的区别在AVL是高度平衡的,不会出现二叉搜索树极端情况:线性链表 搜索复杂度为N 。 实现上,AVL树在插入节点和删除节点时要不断调整树,使其处在一个平衡状态。和二叉搜索树相比主要增加树旋转、调整。实现源码...原创 2018-03-17 20:46:12 · 1751 阅读 · 2 评论 -
golang 实现二叉搜索树(面向对象,非递归)
二叉搜索树golang 实现非递归方式的二叉搜索树(OO)。 实现时以index为索引比较,data中记录节点数据。 实现方法: 1. 二叉树中插入节点(Insert); 2. 二叉树中查找节点 (Search); 3. 二叉树中删除节点(Delete) —>需要考虑多种情况: 没有任何子树,只有左或右子树,同时有左子树和右子树;二叉搜索不是平衡树,搜索最坏情况(n),最好...原创 2018-03-11 17:27:38 · 526 阅读 · 0 评论 -
使用GDB 调试 debug版本docker
前言docker 管方网站提供的安装rpm包,编译时去除了debug信息,不方便GDB调试;前期准备docker-ce 源码包 NOTE:需配置海外代理,编译docker-ce时,会在海外网站下载一些资源:编译docker的docker镜像、golang对应版本等docker 运行对应的golang开发包; 查询docker-ce中对应golang版本[root@l...原创 2018-03-09 14:42:51 · 1312 阅读 · 0 评论 -
docker swarm集群 网络安全TLS 分析
TLS 基础docker swarm 集群间为了保证通信安全,使用TLS进行安全加固。分析TLS安全加固时需要一些网络安全背景知识。 数字签名:《数字证书及CA的扫盲介绍》、《数字签名是什么》 CA和证书:《数字证书(Digital Certificate)与数字签名(Digital Signature)》、《OpenSSL 与 SSL 数字证书概念贴》、《基于OpenSSL自建CA和颁发...原创 2018-02-14 21:53:03 · 2145 阅读 · 0 评论 -
golang实现常用排序算法 --- 快速排序、堆排序等
简单选择排序原理阐述:从未排序的数组序列中,选择最大或者最小元素添加入已排序数组 最开始已排序数组为空import ( "fmt")//简单选择排序func simpleSelectSort(nums []int) { for i := 0; i < len(nums); i++ { min := i for j := i +...原创 2018-01-28 23:26:58 · 507 阅读 · 0 评论 -
docker事件events监控实现分析
go event实现原理使用一个队列保存events事件,先进入到队列的事件先得到处理开启一个协程,循环检测队列中是否有事件队列事件的写入必须在另外的协程中,所以必须使用锁保护队列events数据设计 sink 装载events,为保证设计的兼容性,sink设计为interface,sink可理解为:运输船,将event事件运输到相应的协程sink 配合channel可以实现...原创 2018-02-26 19:23:09 · 2828 阅读 · 0 评论 -
Golang 实现多协程读取并计算文件数字的平方和
Golang 的协程非常好用上次面试时,面试官要求手写代码,题目: 1. 多个文件中存在着一串用空格隔开的数字 2. 读取文件中的数字,计算多个文件的平方和 3. 使用多协程方式代码:package mainimport ( "flag" "fmt" "io/ioutil" "os" "strconv" "strings&qu原创 2018-04-26 20:14:18 · 1848 阅读 · 0 评论