2014-10-11 76 views
0

我们可以有这种类型的配置吗?运行下面的事情有多个Mongos的一个碎片

两个服务器每名─

1.Mongo Config Server. 
2.Mongo Router. 
3.Application. 

共有4 EC2服务器 -

  1. 第一台服务器,运行Web应用程序& mongos。
  2. 第二台服务器 - 运行Web应用程序& mongos。
  3. 第三台服务器 - 用完整的数据库运行第一个分片(例如 示例演示)。
  4. Forth服务器运行具有完整数据库的第二个碎片(例如 示例演示)。

这两个Mongos应该指向一个名为Shard1的碎片?

+0

碎片在哪里?你还没有列出?你能告诉我们你打算如何在两台服务器上分发应用程序吗? – Sammaye 2014-10-11 12:58:26

+0

是的,这两个mongos都会指向shard1 – Sammaye 2014-10-12 13:18:53

+0

您不能有2个配置服务器。您必须拥有3.按照您的计划,在同一台机器上运行mongos和应用程序。 mongos被配置为指向配置数据库。然后在一个mongos上使用sh.addShard添加分片,然后分割数据库并添加分片集合。根据分片的定义,分片都不会有“完整的数据库”。 – wdberkeley 2014-10-13 14:46:05

回答

0

是的,您可以在单个分片上运行多个mongos实例。将mongos实例想象为分片群集的客户端,它们必须作为守护程序进程运行,以保持元数据和检测信号最新。

编辑:至于具有完整的DB,这只适用于单个DB。例如,您可以在shard1上创建一个数据库,在shard2上创建另一个数据库。但你永远不可能在两个分片上拥有一个完整的数据库。为了实现shard2上的shard1和db2上的db1目标,您只需将相应的分片分别作为相应数据库的主分片,而不要分割任何集合。详情请阅读the docs for the movePrimary command

有点OOT:

但是,运行一个配置服务器,强烈建议反对,一个很好的理由。如果单个配置服务器停机或损坏,您的集群将无法使用 - 重新创建分区集群不是一件容易的任务。这将是一个简单的过程。所以请使用三个配置服务器。*

相关问题