Archive: 2016/5

ETCD实现leader选举

客户端的leader选举实现由多种选择,最简单的做法是使用zookeeper,例如ZK Curator framework这里我只简单说明一下我在ETCD中实现leader election的做法 每一个client需要启动的时候需要有一个唯一的ID 需要一个目录来保存leader的信息: 例如: /root/path client判断自己是否为leader的时候:12#获取etcd上的lead

tomcat启动123

让Tomcat支持引用软连接资源默认情况下想通过在Tomcat下建立软连接来使tomcat上的应用引用该资源是不行的,会出现类似错误:12java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: start: : java.io.IOException: Failed to acces

java伪共享

典型的CPU微架构有3级缓存, 每个核都有自己私有的L1, L2缓存. 那么多线程编程时, 另外一个核的线程想要访问当前核内L1, L2 缓存行的数据。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。比如下面的代码:1234567891011121314151

centos安装最新版本git

在使用jenkins的时候,写了一个plugin,由于git版本的问题,出现莫名其妙的问题,但是官方的最新版本只有1.7,咋办?只能考虑源码安装了步骤如下 下载编译工具 1yum groupinstall “Development Tools” 下载依赖包 1yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openss