【问题标题】:Failover cluster Couchbase with Lighttpd Failed on machine2使用 Lighttpd 的故障转移集群 Couchbase 在 machine2 上失败
【发布时间】:2013-10-08 16:19:41
【问题描述】:

这是我的场景。

我在 couchbase 中创建了一个名为“mybucket”的存储桶,并将 mach1 和 mach2 配置为为该存储桶相互故障转移。

机器1:

**mach1.myserver.com**
couchbase and lighttpd.
webapps installed on this machine pointing to couchbase bucket called "mybucket" at mach1.myserver.com

机器2:

**mach2.myserver.com**
couchbase and lighttpd
webapps installed on this machine pointing to the couchbase bucket called "mybucket" at mach2.myserver.com

当我访问 URL mach1.myserver.com 时,webapps 连接成功。

但是,当我访问 URL mach2.myserver.com 时。 webapps 连接失败。它们都连接到同一个名为“mybucket”的存储桶

我是否在此配置中遗漏了什么。首先,我在这里所面临的一切是否有意义?请指教?

【问题讨论】:

  • 我不确定你的拓扑结构,通常你部署Couchbase集群的方式是:你放多个节点,你的应用直接访问它,不需要放任何负载均衡器或故障转移基础设施在它的顶部。您能否说明您正在尝试做什么以及您的应用程序是如何开发的,我很乐意回答
  • 谢谢@Tug Grail。我想要做的是让每台有网络服务器的机器也有沙发库。这样,负载平衡由网络服务器处理,因为每个网络服务器都连接到自己的沙发库,沙发库执行自己的分布式数据库。我必须根据位置创建某种负载平衡,以便最终用户将仅连接到最近的网络服务器,并且该网络服务器将连接到也是大集群的一部分的沙发底座。这有意义吗?

标签: lighttpd couchbase centos6


【解决方案1】:

我认为您被这个问题Architecting webserver (NginX/Lighttpd/Apache) with couchbase 误导了,它就是答案。因为你问过关于 couchbase 的问题,而答案只是关于负载均衡器。

因此,首先,如果您想构建可扩展的应用程序,切勿将同一台服务器用于数据库和应用程序。这甚至可以是一台硬件上的虚拟机,但不要将网络服务器和数据库放在一台物理/虚拟服务器上。特别是如果您打算使用沙发底座。 Couchbase 喜欢吃太多的 iops,因此您的 Web 服务器可能没有足够的 iops。

在您描述的情况下,我的选择是为 webapp 和 couchbase 设置单独的服务器。服务器对 webapp-couchbase 应彼此靠近放置(即至少在一个数据中心中)以最小化延迟。您应该将 couchbase 服务器配置为具有 XDCR 复制的独立集群(还要检查需要为 couchbase 打开哪些端口)。然后配置 webapp 连接到最近的服务器。但在这种情况下,您应该自己关心“高可用性”:查看this question 以查看一些建议。 如果您将所有 couchbase 服务器连接到一个集群中,它将在集群中的所有服务器周围分发文档,即使您仅从 Web 应用程序连接到最近的服务器,也会从集群中的所有 couchbase 服务器收集数据。

如果您还有其他问题,或者我应该更好地解释一些问题 - 请在 cmets 中提问,我会更新我的答案。

UPD:如果您使用的是 couchbase >= 2.1.1,则可以使用 hostnames 对其进行配置。

【讨论】:

  • 这正是我要找的。感谢@m03geek 提供的信息。抱歉回复晚了。被我正在工作的其他东西困住了,我忘了检查这个问题。 :-) 再次感谢。
猜你喜欢
  • 2014-06-14
  • 1970-01-01
  • 2012-01-17
  • 2017-08-31
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多