Memcache升级版之CouchBase [二]使用详解

来源:互联网 发布:手机淘宝积分怎么获得 编辑:程序博客网 时间:2024/06/05 06:32

在上一篇中,介绍了Couchbase的安装和配置,接下来介绍一些如何使用。


linux启动和停止服务: /etc/rc.d/init.d/couchbase start/stop  


如果安装时设置的有问题,需要重新安装,只需要将服务停止,删除/opt/couchbase/var/lib/couchbase目录下的数据(请保留log目录),再启动服务,通过浏览器连接上去就可以看到熟悉的欢迎界面,全部重新配置即可。


既往使用memcache的时候,对其中的数据进行批量处理会是非常困难的事情,couchbase的view功能,使其从单一缓存工具转变为文档型数据库。但是,这个功能也有些蛋疼,要map全部数据,性能上很成问题。可以通过设置更多的bucket,尽量让一类数据放在一个bucket上,可以改善一些。但总体来看瑕不掩瑜,View功能让通过缓冲进行数据统计分析成为可能,这是一个很可喜的事情。


最后,说一下运维中还可能遇到的问题:

1,如何在同一Server下建立多个Bucket?

与membase时类似,默认的bucket是11211端口,可以建立多个Bucket复用这个端口,但是需要客户端连接是通过SLD验证来确定到底连接哪一个Bucket。另一个更实用的办法,是将更多的Bucket分别建立在不同的端口上。这与以往在一台服务器上运行多个memcache实例是相似的。

2,出现某台服务器宕机的情况,数据存取出现异常,怎么回事?

当某个node失效时,在管理界面中可以看到该节点处于down状态。注意,这时PHP连接时,仍然会试图将对此node进行操作,从而返回false。这与我们理解上的集群应该自动保持有效的想法是有差异的。需要手工点击“Fail Over”将此node从服务中屏蔽,之后php才不会对此node进行操作。当节点重新启动后,需要将其恢复回来。根据提示点击“Add Back”,然后视情况决定是否执行Rebalance。

尤其是在只有两个节点时,意味着一个节点失效,如果不及时进行干预,就会有超过一半的请求失败(默认失效节点为主的写和轮询的读),结果会很惨。这看似很傻,其实是为了保证数据有效性。根据官方解释:

A,node少于3个时,必须手工干预;

B,node大于等于3个时,可以通过REST接口设置为“Auto Failover”

C,可以进一步设定,当节点数大于某个数值时,进行自动failover

这样的设定使得大集群可以有效的工作,不会因为运维经验不足导致数据永久损失。这种考虑还是很值得认可的。


原创粉丝点击