【问题标题】:Django non-rel connecting to multiple hosts in a replica setDjango non-rel 连接到副本集中的多个主机
【发布时间】:2014-02-26 08:04:46
【问题描述】:

我正在使用 django non-rel 和 mongodb 后端。 文档很清楚如何连接到单个主机,但是我想连接到副本集中的所有主机。

可以吗?

settings.py 中的 DATABASES 元素对于这样的连接字符串会是什么样子:

mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test

【问题讨论】:

    标签: django-nonrel django-mongodb-engine


    【解决方案1】:

    在 mongodb-engine 项目中有一个未解决的问题。

    https://github.com/django-nonrel/mongodb-engine/pull/170#issuecomment-42406797

    从 cmets 来看,应该这样做:

    DATABASES = {
    
        'default': {
            'ENGINE': 'django_mongodb_engine', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'dbname',                  # Or path to database file if using sqlite3.
            'USER': '',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': 'mongodb://mongodb1.domain.com:27107, mongodb2.domain.com:27017/?replicaSet=replicaname',
        },
    }
    

    更新:

    这已经被验证在主分支上工作:

    git+https://github.com/django-nonrel/mongodb-engine

    【讨论】:

      【解决方案2】:

      我已经研究过这个问题,不幸的是,这目前是不可能的,但我已经提出了一个功能请求,试图在未来的版本中实现这个功能。

      目前您必须分别连接到每个数据库,但您可以查看异步连接或后台任务以加快应用程序性能。

      【讨论】:

      • 我看不到在 django non-rel 的上下文中单独连接到每个 DB 对我有什么帮助。请解释。此外,应用程序性能不是这里的问题,而是与副本集的健壮连接。您能否提供功能请求的链接?
      猜你喜欢
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2015-09-26
      • 1970-01-01
      相关资源
      最近更新 更多