文章转至:http://www.thinksaas.cn/group/topic/342773/web
Memcache基本上已是开发的标配了,可是对于Memcache集群,不少线上部署仍然是很单薄的。浏览器
几个存在的问题:不健壮、数据不安全、配置变动可能致使存取异常、后备数据的一致性安全
鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提升了服务稳定性和数据的安全 性,而且支持数据的持久存储。代码的稳定性不够好,我曾经在部分线上业务上使用了Membase,后来由于几回莫名的存取操做缓慢,只能又撤销回到 Memcache。服务器
以后,Membase团队与CouchDB团队合并,推出二合一的产品: Couchbase。测试
Couchbase的最大特色:server
1,彻底继承Memcache,原生支持全部Memcache操做;blog
2,继承了Membase的特性,支持集群和数据持久化;继承
3,继承了CouchDB的文档性质,支持经过View对数据进行操做。这个View的特性,提供了以往memcache所不具有的便利性,可是同Mongodb相比又很简单原始,感受不是一种广泛需求的功能。索引
首先,从安装讲起:内存
安装服务器:
去官网下载对应版本的安装包http://www.couchbase.com 目前最新版本是2.1.1
从membase开始,就提倡采用web方式进行管理(执行完安装文件后,在浏览器中http://localhost:8091端口访问),默认是8091端口。
另一段信息,是关于端口。11211是memcache访问端口,8091是管理和操做端口,其余几个是用于管理和集群通信的。
打开8091进行初始化设置:
初始化过程很人性化,第一步是选择物理存储位置,而且设定新建立仍是加入到一个已有的集群中。
若是选择新建立,须要指定内存使用的数量(注意若在集群中,全部集群的Mem内存必须都大于此值)。下一步中,还能够选择自动灌入一些测试数据,这样能直接体验一些view的效果。
再下一步,是建立缺省Bucket设置,这个很重要:
Bucket的意义,在于将数据进行分隔,好比:任何view就是基于一个bucket的,仅对bucket内的数据进行处理。一个server上 能够有多个Bucket,每一个Bucket的存储类型、内容占用、数据复制数量等,都须要分别指定。从这个意义上看,每一个Bucket都至关于一个独立的 实例。在集群状态下,咱们须要对server进行集群设置,Bucket只侧重数据的保管。
建立Bucket,须要指明驱动类型: Memcached顾名思义,纯内存,无复制集等功能;Couchbase型是带有持久存储,能够有复制集。
关于复制集,能够设置:禁止复制集、复制集数量(若是设为2,数据将在两个节点上保存,任何一个节点损坏数据仍然存在),是否对索引也进行复制。Flush,是指是否支持清空所有数据的操做。
建议是使用Couchbase类型,设定好内存使用量,其余按默认。关于内存设定,尽可能不要将Server上的内存所有分配出去,留一些空闲,对新建Bucket进行测试就很方便。固然,Bucket占用的内存数,在创建后也是能够动态调整的。
后面按照提示进行,设置完管理员密码,服务就可使用了。在首页的管理界面,能够看到运行的概况:
在ServerNodes帧中,能够查看服务器集群状况;在View中,能够管理各个Bucket中的View,在DataBuckets中,对Buckets进行管理。好比调整内存占用:
只有一个服务器节点,replica是没有意义的,咱们来搭建第二个服务器节点。安装过程相似,这里选择加入集群,填写IP和密码:
点击下一步,通过验证就能够加入集群了。集群中任何一台服务器,地位是对等的,用浏览器链接上去均可以进行管理。
能够看到,新加入的服务器处于 Pending 状态,意味着数据还没有进行同步。只有数据进行同步以后,这个节点才能提供服务。点击Rebalance按钮,进行数据同步。还有进度条显示,真的很体贴。