自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 maven多环境参数配置

maven中properties加载顺序<build><filters></filters></build>中的配置pom.xml中的<properties>mvn -Dproperty=value中定义的property相同的key的property以最后一个文件中配置为准不同环境不同配置文件<pro...

2017-09-04 13:51:00 221

转载 《Kubernetes权威指南》——运维技巧

1 Node的隔离和恢复方法1:创建新的Node配置文件指定spec.unschedulable: true通过kubectl replace完成对Node的状态修改 kubectl replace -f xxx.yaml此时Node的状态增加一项SchedulingDisabled,后续创建Pod将不会对该Node进行调度方法2: kubectl p...

2017-05-12 10:39:00 149

转载 《Kubernetes权威指南》——网络原理

1 Kubernetes网络模型基本原则:每个Pod都拥有一个独立IP,而且假定所有Pod都在一个可以直接连通的、扁平的网络空间中。基于基本原则,用户不需要额外考虑如何建立Pod之间的连接,也不需要考虑容器端口映射到主机端口等问题同一个Pod内部的所有容器共享一个网络堆栈即网络命名空间,Pod内的所有容器的端口是共享的Kubernetes对集群网络要求:所有容器都可以在不用...

2017-05-11 21:04:00 501

转载 《Kubernetes权威指南》——Kubelet运行机制与安全机制

1 Kubelet运行机制Kubenetes集群中的每个Node节点都会启动一个Kubelet服务进程用于处理Master下发到该节点的任务,管理Pod及其中的容器Kubelet进程在API Server上注册信息,定期向Master节点汇报Node资源情况,并通过cAdvise监控容器和节点资源1.1 节点管理Kubelet进程在启动时设置参数--register-nod...

2017-05-11 17:22:00 230

转载 《Kubernetes权威指南》——组件原理

1 API Server1.1 提供集群管理的API接口API Server在kubernetes中的进程名为apiserver,运行在Master节点上apiserver开放两个端口本地端口,默认8080安全端口,默认6443,接受Https,用于基于Token以及策略的授权Kubectl Proxy作为API Server的反向代理,也能作为普通客户端访问API S...

2017-04-26 23:36:00 177

转载 《Kubernetes权威指南》——入门

1 Hello World1.1 概述搭建一个Web留言板应用,采用PHP+Redis。Redis由一个master提供写和两个slave提供读。PHP构成的前端Web层由三个实例构成集群,访问时进行负载均衡。提供三个docker镜像redis-master:写的redisredis-slave:读的redisphp-fronted:PHP Web服务1.2 创...

2017-04-19 17:21:00 190

转载 Golang标准库——io-结构

结构LimitedReader定义限制从Reader中读取的字节数。type LimitedReader struct { R Reader // underlying reader N int64 // max bytes remaining}方法//Limitedfunc (l *LimitedReader) Read(p []byte) (n i...

2017-04-18 23:37:00 160

转载 Golang标准库——io-接口

接口Read相关ReaderReader接口用于包装基本的读取方法。type Reader interface { //将数据读入到p中,直到读满p或者读取的过程中遇到错误,此时返回的n<len(p)同时err!=nil //如果正常结束的话n也可能小于len(p),此时err==io.EOF(var EOF = errors.New("EOF")) ...

2017-04-18 23:37:00 156

转载 GO入门——7. 并发

1 并发1.1 goroutineGoroutine 奉行通过通信来共享内存,而不是共享内存来通信goroutine 只是由官方实现的超级“线程池”而已。每个实例 4-5KB 的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造 Go 号称的高并发的根本原因。goroutine 的简单易用,也在语言层面上给予了开发者巨大的便利1.2 ChannelChann...

2017-04-16 15:01:00 89

转载 GO入门——6. struct与方法

1 structGo 中的struct与C中的struct非常相似,并且Go没有class使用 type struct{} 定义结构,名称遵循可见性规则支持指向自身的指针类型成员支持匿名结构,可用作成员或定义成员变量匿名结构也可以用于map的值可以使用字面值对结构进行初始化允许直接通过指针来读写结构成员相同类型的成员可进行直接拷贝赋值支持 == 与 !=比较运算符,...

2017-04-15 21:08:00 108

转载 GO入门——5. 函数

1 函数Go 函数 不支持 嵌套、重载和默认参数定义函数使用关键字 func,且左大括号不能另起一行函数也可以作为一种类型使用无需声明原型不定长度变参func A(a string,c ... int){ //不定长变参必须在最后 //此时c为一个slice}多返回值func A() (int,int){ //返回多个int}命名返...

2017-04-15 17:11:00 136

转载 GO入门——4. 数组、切片与map

1. 数组定义数组的格式:var [n],n>=0数组长度也是类型的一部分,因此具有不同长度的数组为不同类型注意区分指向数组的指针和指针数组 //数组的指针 a := [2]int{1, 2} p := &a fmt.Println(p) //&[1 2] //指针数组 x, y := 1, 2...

2017-04-15 14:56:00 107

转载 GO入门——3. 控制语句

1 if条件表达式没有括号支持一个初始化表达式(可以是并行方式)左大括号必须和条件语句或else在同一行支持单行模式初始化语句中的变量为block级别,同时隐藏外部同名变量 a := 1 if a > 0 { fmt.Println("yes") //输出该结果 } //加初始表达式 if b := 2; a ...

2017-04-15 13:25:00 88

转载 GO入门——2. 变量

1 基本类型零值并不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下值类型的默认值为0,bool为false,string为空字符串,引用为nil。1.1 布尔类型关键字:bool长度:1字节取值范围:true, false注意事项:不可以用数字代表true或false默认值为false1.2 整型类型1.2.1 整型int/uint 根据运行平...

2017-04-14 16:08:00 116

转载 GO入门——1.基础

1 安装配置与命令GOROOT:Go根目录GOPATH:GO工作目录,其目录下需要建立一下三个子目录bin :存放编译后生成的可执行文件pkg :存放编译后生成的包文件src :存放项目源码常用GO命令go get:获取远程包(需 提前安装 git或hg)go run:直接运行程序go build:测试编译,检查是否有编译错误go fmt:格式化源码(部分ID...

2017-04-14 13:35:00 104

转载 《第一本Docker书》

Docker简介Docker依赖写时复制(copy-on-write),使修改应用程序非常迅速。Docker推荐单个容器只运行一个应用或进程,鼓励面向服务的架构和微服务架构。Docker的核心组件包括:Docker客户端与服务器:Docker是一个C/S架构,客户端连接到服务端(Docker守护进程)执行相关命令,Docker提供CLI和RESTful API两种控制方式。...

2017-04-13 15:58:00 102

转载 Nginx配置文件

//全局区#user nobody;//设置worker进程数,一般为CPU*核数worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;...

2017-04-11 13:11:00 79

转载 Nginx入门

基础控制命令信号量Nginx启动后会产生一个master进程和多个worker进程,可以通过对master进行发送信号量实现对nginx进行控制与管理。kill -信号量 pidkill -信号量 `cat logs\nginx.pid` //日志目录下的nginx.pid记录了nginx master进程的pid信号量功能TERM,INT强制快速关闭...

2017-04-11 13:06:00 106

转载 《Java多线程编程核心技术》——多线程与同步

Java多线程线程可以理解为是在进程中独立运行的子任务。Java多线程使用方法Java中实现多线程主要有以下两种方法:继承Thread,而后实例化该对象调用start()即启动了新线程;实现Runnable,通过new Thread(Runnable run)实例化该线程,而后调用start();常用方法Thread.currentThread() 静态方法,获取当...

2017-04-05 21:40:00 72

转载 《垃圾回收的算法与实现》——Python垃圾回收

Python垃圾回收python采用引用计数法进行垃圾回收Python内存分配python在分配内存空间时,在malloc之上堆放了3个独立的分层。python内存分配时主要由arena、pool和block三个构成。第0层该层指glibc的malloc()这样的分配器,是对OS申请内存的部分。python中如果生成的对象大于256B直接调用malloc,否则直接通过...

2017-04-04 01:22:00 106

转载 《垃圾回收的算法与实现》——增量式垃圾回收与RC Immix算法

增量式垃圾回收为了控制最大暂停时间,通过逐渐推进垃圾回收即垃圾回收与mutator交替执行。三色标记算法以标记-清除算法为例使用三色标记算法。利用降低吞吐量来缩短最大停顿时间。基础将GC中对象分成三种颜色:白色:还未搜索过灰色:正在搜索黑色:搜索完成增量式的GC标记-清除算法分成以下三个阶段:根查找阶段标记阶段清除阶段执行过程根查找阶段,直...

2017-04-03 00:33:00 248

转载 《垃圾回收的算法与实现》——分代垃圾回收

分代垃圾回收理论支持:经验得出——"大部分的对象在生成后马上就变成了垃圾,很少有对象能活得很久"。分代垃圾回收将刚生成的对象称为新生代,达到一定年龄(进过一次GC即一岁)的对象称为老年代,不同代的对象使用不同回收算法。新生代对象执行GC称为新生代GC(minor GC)。新生代对象存活一定次数GC将晋升到老年代,老年代的GC称为老年代GC(major GC)。Ungar的...

2017-04-02 23:00:00 147

转载 《垃圾回收的算法与实现》——保守式GC

保守式GC保守式GC指“不能识别指针和非指针的GC”。不明确的根,寄存器、调用栈。全局变量空间等属于GC root,这些GC均不能识别出是指针还是非指针。指针的识别,在不明确的根的条件下可以已某种程度的精度来识别指针。是否被正确对其是否指向堆是否指向对象的头必须同时这三个基本的检查项目才可能是指针不明确的根很可能出现数值但是同时满足以上三个条件产生"貌似指针...

2017-04-02 21:17:00 247

转载 《垃圾回收的算法与实现》——GC标记-压缩算法

基本算法Mark-Compact与Mark-Sweep的第一阶段均为标记活跃对象,第二阶段则不同,压缩算法则是将活跃对象逻辑上移到一起。Lisp2算法对象头中增加forwarding指针,其用法与复制算法一样。Lisp2的标记阶段与其他算法一样,其压缩算法则包括以下三个步骤:设定forwarding指针,遍历堆根据标记的活跃对象计算出每个对象的forwarding并给其...

2017-04-02 00:17:00 114

转载 《垃圾回收的算法与实现》——GC复制算法

基本概念GC复制算法将堆分成From和To两个内存块,当From被占满时GC将From中的存活对象复制到To中,同时将From和To交换。通过递归遍历GC root(即采用深度优先)复制存活对象,对于已经复制过的标记其COPIED字段。复制过的对象将在From的对象的forwarding记录To中该对象地址,以便于其余引用了该对象的引用进行修改。分配对象时将先判断From中连续...

2017-04-01 00:30:00 183

转载 《垃圾回收的算法与实现》——引用计数法

基本概念在对象中引入计数器(无符号整数),用于记录有多少对象引用了该对象。通过增减计数器实现对内存的管理。分配对象时将计数器置1。更新引用时先对新指定的对象进行计数器加,而后才对旧对象进行减。在对计数器做减法时,判断其计数器是否等于0,等于0 表示为垃圾,即可进行回收。在更新引用时就进行了垃圾的标记与回收,因此STW会很短而且当对象变垃圾时能立马被回收。优缺点优点...

2017-03-31 01:18:00 207

转载 《垃圾回收的算法与实现》——GC标记-清除算法

基本算法标记-清除算法由 ==标记阶段== 和 ==清除阶段== 构成。标记即将所有活动的对象打上标记。清除即将那些没有标记的对象进行回收。标记与清除遍历GC root引用,递归标记(设置对象头中的标志位)对象。标记时如果标志位表示已经标记过则可以跳过。遍历对象有深度优先与广度优先两种算法,其搜索的步骤数一致,而深度优先的内存使用量更小,因此一般使用深度优先。清除阶...

2017-03-30 23:34:00 98

转载 《Mysql技术内幕,Innodb存储引擎》——事物

事物事物中的操作要么都成功要么都不做,这是事物的目的,也是事物模型与文件系统的重要特征之一。扁平事物(Flat Transactions) 所有操作都处于同一层次,要么都做要么都执行要么都回滚,无法提交或回滚一部分。因为其模型简单而广泛使用。带保存点的扁平事物(Flat Transaction with Savepoint) 与扁平事物相比其允许在执行过程中回滚到某一个较早的状态...

2017-03-28 14:31:00 128

转载 《Mysql技术内幕,Innodb存储引擎》——索引与算法

B+树B+树中,所有记录节点都按照键值的大小顺序放在同一层叶子节点,各个叶子节点指针进行连接。图中指针是单向的,但是书上的图是双向的,而且旋转应该也是双向才能完成)B+树插入处理Leaf Page满Index Page 满操作NoNo直接插入到叶子节点YesNo1. 拆分Leaf Page 2.将中间的节点值加入到Index Page中 ...

2017-03-22 21:40:00 176

转载 《Mysql技术内幕,Innodb存储引擎》——文件、表

文件日志错误日志对Mysql启动、运行和关闭过程进行记录,通过SHOW VARIABLES LIKE 'log_error'查看日志文件位置。慢查询日志Mysql启动时设置一个阈值,运行时间超过的所有SQL语句将记录到该日志。long_query_time设置时间阈值,log_queries_not_using_indexes如果运行的SQL没使用索引则也记录慢查询日志,l...

2017-03-21 21:12:00 98

转载 《Mysql技术内幕,Innodb存储引擎》——Innodb体系结构

Innodb体系结构Innodb存储引擎主要包括内存池以及后台线程。内存池:多个内存块组成一个内存池,主要维护进程/线程的内部数据、缓存磁盘数据,修改文件前先修改内存、redo log后台线程:刷新内存池中的额内存缓冲池Innodb的数据以页的形式存储在磁盘,因此采用内存作为缓存页数据。读页数据时,先将磁盘上的页数据“FIX”到缓冲池,下次读即可直接从缓冲池中读。修...

2017-03-20 21:17:00 344

转载 zookeeper基础知识

Zookeeper简介ZooKeeper设计目的最终一致性client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。可靠性具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。实时性Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zook...

2017-03-20 15:00:00 105

转载 分布式锁的一点理解

以下内容为目前自己理解的总结,如有错误请大家指正。什么是锁在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置...

2017-03-20 14:45:00 73

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除