使用Docker构建Apollo

Apollo编译打包 Apollo的Github网址,编译打包构建 可参考分布式部署指南。 修改scripts/build.sh脚本 #!/bin/sh # apollo config db info apollo_config_db_url=jdbc:mysql://fill-in-the-correct-server:3306/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=FillInCorr ...

分布式一致性Raft算法

本文是转载的论文翻译,Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法, 而且 raft 算法比 Paxos 算法更易懂且更容易实现。本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想。 摘要 Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同。 这使得 Raft 比 Paxos 更容易理解并且更容易在工程实践中实现。为了使 Ra ...

使用Docker构建Codis

构建Codis的Docker镜像 Codis的Github网址,默认的Dockerfile打包后的文件过大,将近800M。 使用Docker multi-stage build多阶段构建机制,编译alpine版本的codis,使用阿里云的软件源,加速依赖安装,然后设置时区为上海,打包后200M左右,修改Dockerfile如下。 FROM golang:1.10.3-alpine3.8 as builder ENV GOPATH /go ENV CODIS ${G ...

Spock 基于BDD测试

Spock测试框架基于Groovy并吸收了Junit、TestNG、Mockito等测试框架的优点。 Spock编写的单元测试层次清晰,代码量少,可读性好,Groovy最终会编译为class文件,支持各种集成开发环境(eclipse,Intellij Ieda), 尤其是Intellij idea已经集成支持Groovy的插件,也支持maven-surefire-plugin、jacoco等maven插件。 Spock官网,必读书籍《Java Testing with Spock》 ...

使用Docker Swarm Mode创建集群

能使用Docker Machine的前提是宿主机需要是物理机,云主机目前不支持Docker Machine的创建。 Virtualbox 安装 步骤可参考 cd /etc/yum.repos.d wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo yum install VirtualBox-5.2 Docker Machine 安装 命令行安装docker-machine ...

HBase 系统架构

本文基本是对MapR的官网文章An In-Depth Look at the HBase Architecture的翻译 HBase存储架构 HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由一下类型节点组成:HMaster节点、HRegionServer节点、ZooKeeper集群,而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下: HMaster节点 管理HRegionSe ...

HBase LSM树

LSM树全称是基于日志结构的合并树(Log-Structured Merge-Tree)。No-SQL数据库一般采用LSM树作为数据结构,HBase也不例外。众所周知,RDBMS一般采用B+树作为索引的数据结构,如图1。RDBMS中的B+树一般是3层n路的平衡树。B+树的节点对应于磁盘数据块。因此对于RDBMS,数据更新操作需要5次磁盘操作(从B+树3次找到记录所在数据块,再加上一次读和一次写)。 在RDBMS中,数据随机无序写在磁盘块中,如果没有B+树,读性能会很低。B+树对于数据读操 ...

HBase Docker环境搭建

获取docker-compse文件 docker脚本可以从链接获取 修改docker-compse.xml文件,注意端口映射 version: "2" services: zookeeper-1: container_name: zookeeper-1 networks: ["vnet"] hostname: zookeeper-1.vnet image: smizy/zookeeper:3.4-alpine ports: ["2 ...