Archive: 2016

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

SOA的基本概念和原理

SOA是一种面相服务的软件架构模型,往往和微服务一起用来解决应用(主要是WEB应用或者服务)的复杂性,对应用进行解耦,从而便于管理和维护。一般会将大的应用根据功能模块进行拆分,拆成小的独立的服务,服务之间通过定义好的接口或者契约关联起来,从而比较好的适应scrum的敏捷软件开发过程。一般包含如下几个关键部分: 服务注册,分为自动注册和手动注册。 服务发现 服务治理 容灾 负载均衡, 根据服务发现

git使用

查看远程分支加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话): 12345678910$ git branch -a master remote tungway v1.52* zrong remotes/origin/master remotes/origin/tungway remotes/origin/v1.52 remotes/origin/zrong 删除远程分支和tag在Git v1.7.0 之后,可以使用这种语法删除远程分支: 1$ git push origin --delete <branchName> 删除tag这么用: 1git push origin --delete tag <tagname>

Kafka为什么如此的快

Kafka是分布式的消息系统,需要处理海量的消息,Kafka的设计初衷是把所有消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但是实际上,使用硬盘并没有带来过性能的损失,这究竟为何? Kafka主要使用以下几种方式实现了超高吞吐率的 顺序读写Kafka的消息是不断追加到文件中的,这个特性使它可以充分利用磁盘的顺序读写能力。顺序读写降低了硬盘磁头的寻道时间,只需要很少的扇区旋转时间,所以速度

Kakfa Consumer使用技巧

high-level consumer一种high-level版本,比较简单不用关心offset, 会自动的读zookeeper中该Consumer group的last offset不过要注意一些注意事项,对于多个partition和多个consumer 如果consumer比partition多,是浪费,因为kafka的设计是在一个partition上是不允许并发的,所以consumer数

Linux常用命令

端口占用查看1$>netstat –apn | grep 8080 磁盘占用情况12$>df -h$>du -h --max-depth=1 / 关闭页交互空间1234567##方法1$>vim /etc/sysctl.conf$>sudo sysctl vm.swappiness=0##方法2$>vim /etc/fstab##注释掉LABEL_lswap行$

Java NIO

Java NIO是是jdk1.4里提供的新API, 为所有的原始类型提供缓存支持。几个主要概念: Channels and Buffers: 和标准的基于字节流或者字符流的标准IO API相比,NIO利用Channel和Buffer,数据直接从Channel读去到内存Buffer,或者从Buffer写入Channel, 减少了数据的拷贝。Channel维持了客户端和服务器的链接资源。也可以理解为