使用memcached存储桶掌握Couchbase

时间:2012-04-12 06:48:57

标签: php memcached couchbase

我的情况是我目前有3个memcached实例在3个不同的服务器上运行。我的应用程序目前处于相同的3个不同节点。所有应用程序服务器都知道所有memcached服务器,但如果其中一个服务器出现故障,我就没有办法注意了。 我们的想法是将memcached服务器移动到自己的节点。

我已经开始将CouchBase看作是解决这个问题的另一种方法,但不确定它究竟会起作用。

它是否有效,以便我在每个应用程序节点上都有一个CouchBase集群,然后将它们连接到不同的memcached服务器,然后CouchBase将监视并知道哪些是活着的?

在这种情况下,如果其中一个memcached实例关闭,当前绑定到memcached实例的应用程序如何知道如何获取数据?或者是CouchBase将成为中间人在哪里存储它?

2 个答案:

答案 0 :(得分:2)

Couchbase是一个非常适应的平台,可在替换标准的memcached实例时使用。它允许您将大量容错从应用程序移动到couchbase实例。

在使用PHP时,我建议您在访问Couchbase群集时使用PHP SDK。它可以在这里获得:http://www.couchbase.com/develop/php/current

现在,重要的是要知道PHP的SDK是'vbucket aware'。这意味着当您使用它连接到Couchbase集群时,它将从您放入构造函数的地址中收集所有节点的所有信息。例如:

#Create the Couchbase object
$cb_obj = new Couchbase("127.0.0.1:8091", "user", "pass", "default");

这将创建一个对象,您可以通过它自己运行命令,如果节点出现故障,它将能够处理所有需要的故障转移。每种语言都有自己的小代码进程(我自己一般都使用Python)但是一旦熟悉它们就会非常有效。

可以通过命令行界面或通过访问http://<nodehostname>:8091/的Web URL来管理群集。这也是您在安装初始集群后将访问的URL。

我强烈推荐Couchbase作为独立memcached的替代品。

答案 1 :(得分:1)

使用Couchbase,您将创建一个群集,由三个节点中的每个节点组成。在您的应用程序中,您创建PHP(?)Couchbase客户端的实例,并为至少一个节点提供URI。客户端将从任何这些节点了解集群的拓扑。

客户端维护与群集的流连接,并将通知拓扑中的任何更改。如果节点发生故障,客户端将做出相应的反应。

您可以设置自动故障转移和通知,以提醒您自动故障转移事件。

相关问题