如何在 Sitecore 中格式化 MongoDB 副本集的连接字符串?

How to format the connection string for a MongoDB replica set in Sitecore?

我已使用副本集为 Sitecore 配置 MongoDB。 我设置了密钥文件访问控制并添加了一个用户。 但是我在创建连接字符串时遇到了问题。

假设我的副本集名称是 rsHelloWorld,有几个 mongod 个实例:localhost:21017,localhost:21018,localhost:21019,localhost:21020,localhost:21021(arbitor)

username: mongo_admin
password: test@123

Sitecore 中的默认连接字符串是:

  <add name="analytics" connectionString="mongodb://localhost/analytics" />

如何使用副本集和身份验证为我的 MongoDB 数据库指定连接字符串?

Sitecore xDB 使用标准 MongoDB connection string format.

在提供的示例中,连接字符串将是这样的:

mongodb://mongo_admin:test%40123@localhost:21017,localhost:21018,localhost:21019,localhost:21020,localhost:21021/?replicaSet=rsHelloWorld

请注意,我已将您密码中的 @ 符号替换为 %40。这是因为连接字符串中的 @ 是凭据和主机名之间的分隔符。 See more here.

此外,请记住,您 没有 在连接字符串中指定所有服务器。您至少需要指定一个,并且在连接到它时,xDB 将收到有关副本集的完整信息,包括所有数据承载节点的地址。尽管如此,最好的做法是包括多个服务器,以确保如果其中一个服务器出现故障,应用程序仍能找到要连接的服务器。在您的情况下,包括仲裁程序没有多大意义,因为 xDB(或任何其他 MongoDB 客户端)永远不必与它通信。