-3

I am trying to make mongodb set-up, I am trying to analyze risk factor involved in it.

My configuration in testing environment is

Routing server------> Config Server ------- > Shard01
                                              Shard02
                                              Shard03

My routing server and config server is running on same machine. Shard01, Shard02, Shard03 are running on three different machine respectively. I want to analyze what all risk factors are involved in this system. For example, one scenario is if any Shard machine is down application will stop?

4

1 回答 1

0
  1. 只有一个配置服务器是一个非常糟糕的主意 (TM)。对于生产环境,always、alwaysalways使用三个配置服务器。原因:没有配置服务器,集群基本上变得无用,因为查询路由器从配置服务器获取有关哪个键范围存在于哪个分片上的信息。(搁置 mongos 的元数据缓存,因为这只会延迟问题)。注意:如果不这样做,风险自负。
  2. 让配置服务器和查询路由器在同一台机器上运行是一个非常糟糕的主意。在重负载下,这些机器需要竞争网络 IO。虽然这是一种罕见的情况,但仍有可能发生。在每个应用程序服务器上放置一个查询路由器(更)更有意义:它减少了网络延迟(在到达数据之前减少一跳),单个 mongos 不会超载并且您不需要运行你在配置服务器上的 mongos。;) 说真的,这是建议且经过充分验证的设置。
  3. 将分片作为独立实例运行是一个非常糟糕的想法。如果您的主分片(保存未分片集合的分片,包括system)失败,您就有大麻烦了。您应该始终使用副本集作为分片。注意:如果不这样做,风险自负。

MongoDB 驱动程序的一个鲜为人知的特性是您可以将它们配置为使用多个 mongos 实例。如果第一个失败,则尝试下一个。因此,使用多个 mongo(每个应用程序服务器一个)、适当的数据源配置、三个配置服务器和副本集作为分片,就不会出现单点故障(节点方面)。

于 2014-11-20T00:22:38.493 回答