蒙戈数据库的风险因素分析



我正在尝试进行mongodb设置,我正在尝试分析其中涉及的风险因素。

我在测试环境中的配置是

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

我的路由服务器和配置服务器在同一台计算机上运行。Shard01、Shard02、Shard03 分别在三台不同的机器上运行。我想分析一下这个系统中涉及的所有风险因素。例如,一种情况是,如果任何分片机器关闭,应用程序将停止?

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

MongoDB驱动程序的一个鲜为人知的功能是,您可以将它们配置为使用多个mongos实例。如果第一个失败,则尝试下一个。因此,使用多个 mongo(每个应用程序服务器一个)、正确的数据源配置、三个配置服务器和副本集作为分片,不存在单点故障(节点明智)。

相关内容

  • 没有找到相关文章

最新更新