MongoDB简介
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
NoSql数据库的CAP理论
CAP理论,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
Practice from here
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
CAP理论,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
1 | $ mkdir -p $GOPATH/src/github.com/coreos |
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统
etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。
1. 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。
2. 安全:可选SSL客户认证机制。
3. 快速:每个实例每秒支持一千次写操作。
4. 可信:使用Raft算法充分实现了分布式。
!<–more–>
在如下路径创建文件夹$ mkdir -p $GOPATH/src/github.com/coreos
下载etcd包$ git clone https://github.com/coreos/etcd.git
下载完后,然后依次执行下面命令1
2
3$ cd etcd
$ ./build
$ ./bin/etcd
1 | package main |
一个 Raft 集群包含若干个服务器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一:
follower(跟随者)
:所有结点都以 follower
的状态开始。如果没收到 leader
消息则会变成 candidate
状态。candidate(候选人)
:会向其他结点“拉选票”,如果得到大部分的票则成为leader
。这个过程就叫做Leader选举(Leader Election)。leader(领导者)
:所有对系统的修改都会先经过leader
。