- 博客(46)
- 收藏
- 关注
转载 docker push 实现过程
这一篇文章分析一下docker push的过程;docker push是将本地的镜像上传到registry service的过程;根据前几篇文章,可以知道客户端的命令是在api/client/push.go中,CmdPush()函数:基本思路就是将通过解析cmd.Arg(0)参数,提取去要push的镜像的repository 和 tag,通过registry 和 reposito...
2016-04-15 16:02:00
819
转载 通过docker-machine和etcd部署docker swarm集群
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群;docker swarm是docker 官方搭建的容器集群编排工具;容器编排,就是可以使你像使用一太机器一样来使用一个集群,你运行的容器可能会在容器中的任何一个节点上运行;首先盗一张 docker swarm的架构图:图片来源https://yeasy.gitbooks.io/docke...
2016-03-11 19:41:00
194
转载 用docker toolBox 搭建 nginx + flask + redis 环境
本篇博客,主要是了解一下docker-compose的使用,docker-compose是官方给出的同时部署多个容器的解决方案;当你需要多个容器同时运行作为你的解决方案时:比如构建一个网站,需要php + apache + postgrel ,这里面的每一个组件(web server,数据库等)都是一个容器,如果自己一个一个建立,并且还要维护容器之间的互联关系的话,是一件复杂的事情;do...
2016-03-03 10:28:00
311
转载 关于docker容器是怎样建立新的namespace的。
最近博客收到了一封交流的私信,感谢您的关注;现在就我理解的docker建立容器时namespace的建立问题做一个 个人的回答:一,从原理角度来讲:docker创建container,说白了就是linux系统中的一次fork的调用,在fork调用的时候,会传入一些flag参数,这些参数可以控制对linux内核的调用使用新的namespace;具体的做法是docker daemon...
2016-02-04 18:09:00
255
转载 docker 源码分析 六(基于1.8.2版本),Docker run启动过程
上一篇大致了解了docker 容器的创建过程,其实主要还是从文件系统的视角分析了创建一个容器时需要得建立 RootFS,建立volumes等步骤;本章来分析一下建立好一个容器后,将这个容器运行起来的过程,本章主要分析一下 docker deamon端的实现方法;根据前面几章的介绍可以容易找到,客户端的实现代码在api/client/run.go中,大体步骤是首先通过上一篇文章中的cr...
2016-01-29 15:21:00
408
转载 docker 源码分析 五(基于1.8.2版本),Docker容器的创建
前面讲到了docker容器得镜像,镜像其实是docker容器的静态部分,而docker容器则是docker镜像的动态部分,即启动了一个进程来运行,本篇最要来分析一下怎样创建并运行一个容器。创建一个容器在客户端实现是在api/client/create.go,其中得CmdCreate()方法,这个函数的作用是通过一个给定的image来启动一个container;其中的createCon...
2016-01-20 20:22:00
167
转载 docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储
前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,client端发出的命令由docker daemon接收并处理。我们在运行docker的时候,可能会使用到docker run命令(当然通过Dockerfile运行docker build命令...
2016-01-05 17:33:00
241
转载 Go语言并发编程示例 分享(含有源代码)
GO语言并发示例分享:ppthttp://files.cnblogs.com/files/yuhan-TB/GO%E8%AF%AD%E8%A8%80.pptx代码, 实际就是<<Go语言程序设计>> (Mark Summerfield【英】著,许式伟 吕桂华 徐立 何李石 译) 第七章的全部示例:http://files.cnblogs.co...
2015-12-04 19:34:00
147
转载 cassandra 公司内分享 ppt
在公司内分享的cassandra ppthttp://files.cnblogs.com/files/yuhan-TB/cassandra.pptx转载于:https://www.cnblogs.com/yuhan-TB/p/4968189.html
2015-11-16 10:17:00
121
转载 docker 源码分析 三(基于1.8.2版本),NewDaemon启动
本文来分析一下New Daemon的启动过程;在daemon/daemon.go文件中;func NewDaemon(config *Config, registryService *registry.Service) (daemon *Daemon, err error) { setDefaultMtu(config) //设置默认的MTU,这里的默认值时1500...
2015-10-15 15:13:00
196
转载 docker 源码分析 二(基于1.8.2版本),docker client与daemon交互
(2) 那我们通过docker客户端发送一个命令,docker是怎样接收到并处理的呢,我们就举个例子来看一下,比如docker pull 命令;我们回到 docker/docker.go 中,在上一章中我们讲了docker daemon的启动,代码讲到了handleGlobalDaemonFlag()的位置。我们接着继续看: c := cli.New(clientCli, dae...
2015-09-28 13:10:00
98
转载 docker 源码分析 一(基于1.8.2版本),docker daemon启动过程;
最近在研究golang,也学习一下比较火的开源项目docker的源代码,国内比较出名的docker源码分析是孙宏亮大牛写的一系列文章,但是基于的docker版本有点老;索性自己就git 了一下最新的代码研读;docker是c/s的架构,分为docker client 和 docker daemon,client端发送命令,daemon端负责完成client发送过来的命令(如获取和存储...
2015-09-27 13:53:00
180
转载 ubuntu 14.04 安装docker
常会遇到的问题就是网络的问题,如访问https://get.docker.io/ 遇到403的问题;总结一下最简单的几条命令:$ sudo apt-get install apt-transport-https$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C...
2015-09-09 16:24:00
73
转载 cassandra中对节点失败与否的探测方法, the Phi accrual Failure Dector,附论文
(1)在分布式系统中,对于某个节点是否还“活着”的探测,通常是设定一个时间的阀值,然后根据接收到的“心跳”信息的间隔,来判定这个节点是否还活着,然后返回一个bool值;但这种做法很容易造成误判:因为你不能确切得知道 究竟是真的是节点挂掉了,还是网络比较“慢”;(2)cassandra里面采用一种可以自适应自调整的故障探测的方法,主要实现原理是:用一个滑动窗口记录下 接收到的 ...
2015-08-21 15:08:00
203
转载 cassandra CQL 常用操作
1. CQL客户端链接 bin/cqlsh ip username password2.(1)建立keyspace语句,keyspace类似于 mysql 中的数据库,一个数据库中可以有很多表;CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy','replica...
2015-08-20 15:55:00
277
转载 tornado 协程的实现原理个人理解;
tornado实现协程的原理主要是利用了(1)python里面的generator (2)future类和ioloop相互配合,两者之间的相互配合是通过gen.coroutine装饰器来实现的;具体个人理解是:(1) 执行到函数中的yield表达式时,函数中止,然后返回yield的参数;(2) 将yield的返回值分装成future类,并且将(1)中yield之后的代码块 作...
2015-08-19 13:56:00
139
转载 cassandra CQL 3.0 怎样实现 dynamic column;
1. cassandra有一个好的特点是列之间可以按照column key进行排序;这样当rowkey确定以后,对于同一个“行”的范围(range query)查找是很方便的;官方说法,每一个“行”(wide row)可以加入最多20亿个列,虽说如此,据ebay的工程师讲,实践中也没有超过百万个的;同一个row的数据值存在于同一server,不会分开的;2. 而且column ...
2015-07-26 16:28:00
220
转载 tornado autoreload 模式
在用tornado进行 网络程序编写的时候,肯定要对代码进行修修改改,如果每次都要重启server的话,会是很麻烦的事情。tornado提供了autoreload模式。一,要开始autoreload模式,可以在setting中进行设置,可以将debug模式开启,debug模式开启时,autoreload模式会自动开启;当然也可以显示的设置autoreload为True;或者可以...
2015-07-20 20:26:00
176
转载 mac 下配置protobuf 3.0 golang环境
protobuf 3.0 与 之前的 protobuf 2.6 的语法是不一样的。需要重新安装一下,本机的环境是 OS X Yosemite 10.10.21. 不采用home brew安装,用homebrew安装的话会遇到一个open issuehttps://github.com/Homebrew/homebrew/issues/30320的问题,没有仔细研究,索性就...
2015-07-08 10:10:00
395
转载 cassandra 环境搭建
1 下载安装包 http://www.planetcassandra.org/cassandra/?dlink=http://downloads.datastax.com/community/dsc-cassandra-2.1.5-bin.tar.gz 用tar包的形式安装,解压缩之后就可以用;选择2.1.5,因为golang 客户端gocql的git 首页上支持...
2015-07-07 10:47:00
230
转载 golang vim环境搭建
主要使用到的是golang的vim插件vim-go,安装方法:(1)配置好自己的GOPATH和GOROOT;(2)在GOPATH目录下建立 src、pkg、main、bin四个目录;(3)安装插件管理器 Pathogen, (a) 在Pathogen的首页http://www.vim.org/scripts/script.php?script_id=2...
2015-06-24 18:30:00
85
转载 tornado初步 ppt分享
组内的tornado分享,初步;http://files.cnblogs.com/files/yuhan-TB/tornado.pptx转载于:https://www.cnblogs.com/yuhan-TB/p/4565139.html
2015-06-10 09:01:00
83
转载 python 中的json解析库
当一个json 数据很大的时候。load起来是很耗时的。python中常见的json解析库有cjson,simplesjson,json, 初步比较了一下,对于loads来讲 simplejson 的速度要好于 其他两者, cjson和json 差不多。网上有很多说 cjson的速度最快的,但我这边测试发现没有simplejson的性能好;转载于:https://www.cn...
2015-05-07 20:18:00
255
转载 mongodb 几个要注意的问题
1. moongo db 会尽量将 所有 索引和热数据 放入内存中来进行比较,从而来获得更好的查询速度,同时,mongodb在写的时候,也是先写入内存,然后定期同步到磁盘上面去,这样可以达成顺序写的高性能,所以mongodb是一个吃内存的东西;所以最好将mongodb部署在一台单独的服务器上;可以用ulimit 限制内存的大小;2. 由于mongodb 充分利用内存的特...
2015-04-26 19:29:00
134
转载 mongo db 分享 ppt
在公司内部的mongo db的ppt。初步进阶http://files.cnblogs.com/files/yuhan-TB/mongoDB.pptx转载于:https://www.cnblogs.com/yuhan-TB/p/4355402.html
2015-03-21 12:43:00
172
转载 openstack context
之前一直不知道context模块中存储的是什么东西,这回看一下代码;其中最主要的类是:RequestContext;class RequestContext(object):"""Helper class to represent useful information about a request context.Stores information abo...
2015-03-06 13:51:00
239
转载 openstack 本地化
研究了一下openstack中的本地化;主要使用gettext模块;其中本地化包括对一般字符串的本地化和log的本地化;(1)_localedir = os.environ.get('essential'.upper() + '_LOCALEDIR')_t = gettext.translation('essential', localedir=_localedi...
2015-03-04 18:48:00
110
转载 openstack中运行定时任务的两种方法及源代码分析
启动一个进程,如要想要这个进程的某个方法定时得进行执行的话,在openstack有两种方式: 一种是通过继承periodic_task.PeriodicTasks,另一种是使用loopingcall.py,针对两种方式分别说一下实现原理。(1) 继承periodic_task.PeriodicTasks 这种方式比较复杂,用到了python中的一些比较高级...
2014-11-09 14:21:00
448
转载 为自己的系统定制openstack ceilometer
一、目的最近研究了一下ceilometer,目的做一个监控系统,对系统中发生的事件进行处理。ceilometer对openstack各个组件信息的收集方式主要由 推 和 拉 两种。“推”: 就是openstack的各个组件将信息以notification的形式发送到message bus,然后有agent_notification对消息进行监听,agen...
2014-10-30 23:00:00
92
转载 openstack 中 log模块分析
1 . 所在模块,一般在openstack/common/log.py,其实最主要的还是调用了python中的logging模块; 入口函数在def setup(product_name, version='unknown'): """Setup logging.""" if CONF.log_config_append: _load...
2014-10-26 19:41:00
340
转载 认真对待每一道算法题 之 找明星问题 - 淘宇瀚
n个人中只有一个明星,明星不认识其他所有的人,而其他人都认识明星,不是明星的人可能认识也可能不认识。你每次只可以问一个人是否认识另一个人这样的问题,问最少问多少次可以找出明星。做法1:将所有人站队,按照顺序(假如编号分别为1、2、3.。n),首先问1,2互相认识,有四种情况出现:(1)1 认识 2,2不认识1, 认识别人的肯定不是明星,排除1;(2)1 不认识2,2认识1...
2014-07-20 14:18:00
453
转载 认真对待每一道算法题 之 产生全排列
上一篇讲到生成字典序其实算法很简单,采用递归的思想,[1,2,3,4] 首先 是 1与2互换位置,[2,1,3,4],然后递归处理[1,3,4];当递归处理完之后;1再与3换位置,变成[3,2,1,4],然后接着处理[2,1,4],就是这样来处理;代码如下:转载于:https://www.cnblogs.com/yuhan-TB/p/3781803.html...
2014-06-11 13:51:00
112
转载 认真对待每一道算法题 之 产生按照字典序的下一个排列
给你一个字符串,然后输入按照字典序的下一个排列;算法思路是这样的“设P是1~n的一个全排列:p=p1p2......pn=p1p2......pj-1pjpj+1......pk-1pkpk+1......pn1)从排列的右端开始,找出第一个比右边数字小的数字的序号j(j从左端开始计算),即j=max{i|pi<pi+1}2)在pj的右边的数字中,找出所有比pj大的数中最小...
2014-06-09 16:35:00
79
转载 认真对待每一道算法题 之 两个排序好的数组寻找的第k个大的数
转载博客:http://www.cnblogs.com/buptLizer/archive/2012/03/31/2427579.html题目意思:给出两个排好序的数组 ,不妨设为a,b都按升序排列,及k的值,求出第k大的那个元素。分析这个题目,如果题目没有时间复杂度的要求,我们可以定义两个指针i,j分别指向a,b,如果a[i]<b[j]则i++否则j++,这个记...
2014-06-03 17:00:00
94
转载 认真对待每一道算法题 之 滑动窗口的最大值
给你一个滑动窗口和一个数组,滑动窗口从数组第一个元素开始向后滑动,每滑动一下就计算当前窗口中对应的数组元素的最大值;设置窗口长度为m,数组长度为n,有O(n*m)算法,用最大堆的O(n*lgm)算,利用已经比较过的元素之间关系的O(n)算法;摘自博客http://blog.csdn.net/sgbfblog/article/details/7967489题目描述...
2014-06-03 11:45:00
190
转载 hadoop中Text类 与 java中String类的区别
hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念;字符集: 是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号;字符编码:是一套法则,使用该...
2014-05-26 11:36:00
508
转载 hadoop 中对Vlong 和 Vint的压缩方法
hadoop 中对java的基本类型进行了writeable的封装,并且所有这些writeable都是继承自WritableComparable的,都是可比较的;并且,它们都有对应的get() 和 set()方法,其中对整型(int 和 long)进行编码的时候,有固定长度格式(intWritable和LongWritable)和可变长度格式(VIntWritable 和 VLong...
2014-05-21 21:05:00
161
转载 转载一篇文章 python程序员经常犯的10个错误
一位同事推荐的。翻译的不错。http://www.oschina.net/translate/top-10-mistakes-that-python-programmers-make转载于:https://www.cnblogs.com/yuhan-TB/p/3736856.html
2014-05-19 15:02:00
102
转载 外部表与partition
在建立普通表的时候,如果数据是有分区的,在ADD DATA的时候需要指明分区,比方下面的例子;user表,包含 id bigint,name string,然后按照时间(date)来进行分区,路径存储在/user/*/test/下面,partition文件分别在/user/*/test/dt=201405131^Amicheal2^Abeckham3^Adavid和/user/*...
2014-05-16 14:01:00
128
转载 mysql innoDB 与 myISAM
转载文章 出处 http://www.pureweber.com/article/myisam-vs-innodb/使用MySQL当然会接触到MySQL的存储引擎,在新建数据库和新建数据表的时候都会看到。MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB了。至于到底用哪种存储引擎比较好?这个问题是没有定论的,需要根据你的需求和环境来衡量。所以对这两种引...
2014-05-15 17:50:00
76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人