Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情 况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括 Google、Microsoft、VMware等业界行业领导者。同时,Docker在开发者社区也是一石激起千层浪,许多如我之码农纷纷开始关注、学 习和使用Docker,许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。
环形数据库rrd及rrdtool介绍
RRD 全称是 Round Robin Database ,即「环型数据库」。顾名思义,它是一种循环使用存储空间的数据库,适用于存储和时间序列相关的数据。RRDTool是RRD的实现工具,可用于存储和展示被监测对象随时间的变化情况。
“Round Robin”是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。存储数据的数据库的空间看成一个圆,上面有很多刻度,每个刻度上可以存储一个数值,同时有一个从圆心指向最新存储值的指针。随着时间推移,指针会绕着圆心一直移动下去,当它指向下一个刻度后,就可以在那个位置上存储一个新的数值。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。
详解Golang中defer, 注意使用时的坑
defer和go一样都是Go语言提供的关键字。defer用于资源的释放,会在函数返回之前进行调用。一般采用如下模式:
1 | f,err := os.Open(filename) |
如果有多个defer表达式,调用顺序类似于栈,越后面的defer表达式越先被调用。
不过如果对defer的了解不够深入,使用起来可能会踩到一些坑,尤其是跟带命名的返回参数一起使用时。在讲解defer的实现之前先看一看使用defer容易遇到的问题。
区块链的那些事,你知道和不知道的都在这里!
摘要: 区块链(Blockchain)是比特币的一个重要概念,本质上是一个去中心化的数据库,同时作为比特币的底层技术。本文将前一段时间整理的区块链技术文章做成了集合,以供大家学习。
今年以来“区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人谈一谈区块链技术就out了,BAT以及各大银行还有什么金融机构都在开始自己的区块链研究工作,就连IBM最近也成立了自己的区块链研究实验室,但其实区块链到底是什么?大家或许并不清楚,停留在雾里看花的状态。前一段时间为大家整理一个区块链学习系列文章,在这里为大家提供一个文章集合,大家就和我一起走进区块链吧,揭开区块链的神秘面纱吧!
Golang中类型变量在内存中的布局
了解Golang中的各种类型变量在内存中的布局,有利于帮助我们加深理解。另一种更直接的方式是阅读源码,之后阅读rumtime
包深入去了解Golang的运行机制。
适配java fastjson包解析Map的Key类型int的json串
首先说明json是不支持{"Bar":"test","M":{1:"a",2:"b"}}
key是int的json字符串,官方encoding/json
包也不解析这类json串。为什么还要解析这样的josn串呢。java的fastjson对Map<Int, String>解析生产1:"a",2:"b"
的非标准json串。接下来就来实现解析这类非标准的json串吧。
Golang代码调试器delve,必先利其器
上篇文章使用gdb作为调试器,本文介绍使用delve代码调试器,记录学习笔记。
使用Golang代码调试器gdb, 了解interface的存储结构
Golang语言的接口实现是隐式声明,目标类只要实现接口定义的所有方法,就被视为实现了接口。接口使用了一个名为itab的结构存储运行期所需的相关类型信息。现在利用gdb调试器来查看结构存储的具体内容。
Ubuntu16 tls安装自己的Bit下载工具Deluge
常用的bit下载软件:uTorrent(Windows用户推荐)、 Azureus、 BitTornado、 KTorrent、 RTorrent、 Transmission、 Deluge。捣鼓了下载机,安装了系统ubuntu16 tls,现在就选择deluge作为bit下载软件。这里记录下安装流程: