
# 配置参数说明
表1配置参数详解 
| 参数名称                      | 是否必选 | 参数类型                           | 取值范围                                                                    | 描述                                        |
|:---|:---|:---|:---|:---|
| props                     | 否    | PropertiesConfiguration object | 请参考[表2 PropertiesConfiguration数据结构说明] | MAS监控配置，配合etcd使用。                         |
| etcd                      | 否    | EtcdConfiguration object       | 请参考[表3 EtcdConfiguration数据结构说明]       | etcd配置，如配置，则会从远端拉取MongoServer配置对本地配置进行覆盖。 |
| sources                   | 是    | ClientConfiguration object     | 请参考[表4 ClientConfiguration数据结构说明]       | MongoClient配置。                            |
| active                    | 是    | String                         | 只能是"dc1"或"dc2"                                                          | 当前使用的Mongo Server节点。                      |
| mappingConverterClassName | 否    | String                         | 自定义的MappingConverter全限定类名                                               | 如 com.huawei.example.MyMappingConverter。  |
| routeStrategy             | 否    | String                         | single-read-write或local-read-single-write                               | 如不设置此配置项，默认为single-read-write。            |
   
 表2PropertiesConfiguration数据结构说明 
| 参数名称              | 是否必选 | 参数类型   | 取值范围 | 描述                      |
|:---|:---|:---|:---|:---|
| version           | 是    | String | -    | 项目版本号。                  |
| appId             | 是    | String | -    | MAS项目组名称。               |
| monitorId         | 是    | String | -    | MAS监控组名称。               |
| databaseName      | 是    | String | -    | MAS监控的Mongo数据库。         |
| cloud             | 是    | String | -    | 项目部署云组。                 |
| region            | 是    | String | -    | 项目部署region。             |
| azs               | 是    | String | -    | 项目部署AZ。                 |
| decipherClassName | 否    | String | -    | 用户用于自定义加解密etcd密码的全限定类名。 |
   
 表3EtcdConfiguration数据结构说明 
| 参数名称            | 是否必选 | 参数类型    | 取值范围       | 描述                                                                                   |
|:---|:---|:---|:---|:---|
| address         | 是    | String  | -          | Etcd地址。                                                                              |
| apiVersion      | 是    | String  | v3         | Etcd版本，固定为v3版本。                                                                      |
| username        | 是    | String  | -          | Etcd用户名。                                                                             |
| password        | 是    | String  | -          | Etcd密码。                                                                              |
| httpsEnable     | 是    | Boolean | true/false | 是否启用https。                                                                           |
| certificatePath | 否    | String  | -          | 证书存放目录，此目录下应包含ca.crt、client.crt、client.key.pem这三个文件。该路径支持classpath:xxx.xxx和绝对路径两种格式。 |
   
![](https://support.huaweicloud.com/devg-mas/public_sys-resources/caution_3.0-zh-cn.png)
使用证书方式连接etcd时，httpsEnable必须设为true，certificatePath不可为空，且保证该路径下有相应的证书文件。
 表4ClientConfiguration数据结构说明 
| 参数名称                     | 是否必选 | 参数类型    | 描述                                                                        |
|:---|:---|:---|:---|
| username                 | 是    | String  | 连接MongoDB的用户名。                                                            |
| password                 | 是    | String  | 连接MongoDB的密码。                                                             |
| url                      | 是    | String  | MongoDB连接串(去除用户名和密码) 举例：mongodb://ip+port/database。                       |
| azs                      | 否    | String  | 此Mongo数据源所属AZ。当routeStrategy设置为local-read-single-write时，此项必填。             |
| minPoolSize              | 否    | Integer | 指定在任何时刻必须存在于单个连接池中的最小连接数。                                                 |
| maxPoolSize              | 否    | Integer | 指定连接池在给定时间可以拥有的最大连接数。                                                     |
| waitQueueTimeoutMS       | 否    | Integer | 指定线程可以等待连接变为可用的最长时间（以毫秒为单位）。                                              |
| serverSelectionTimeoutMS | 否    | Integer | 服务器选择超时（以毫秒为单位）。                                                          |
| localThresholdMS         | 否    | Integer | 当与副本集中的多个MongoDB实例进行通信时，驱动程序只会将请求发送到响应时间小于或等于响应时间最快的服务器加上本地阈值的服务器，以毫秒为单位。 |
| heartbeatFrequencyMS     | 否    | Integer | 指定驱动程序在尝试确定集群中每个服务器的当前状态之间等待的频率（以毫秒为单位）。                                  |
| replicaSet               | 否    | String  | 指定提供的连接字符串包括多个主机。指定后，驱动程序会尝试查找该集合的所有成员。                                   |
| ssl                      | 否    | Boolean | 指定与 MongoDB 实例的所有通信都应使用 TLS/SSL。                                          |
| tls                      | 否    | Boolean | 指定与 MongoDB 实例的所有通信都应使用 TLS。                                              |
| tlsInsecure              | 否    | Boolean | 指定驱动程序应允许 TLS 连接使用无效主机名。                                                  |
| tlsAllowInvalidHostnames | 否    | Boolean | 指定驱动程序应允许证书中的无效主机名用于 TLS 连接。                                              |
| connectTimeoutMS         | 否    | Integer | 指定 Java 驱动程序在超时前等待连接打开的最长时间（以毫秒为单位）。                                      |
| socketTimeoutMS          | 否    | Integer | 指定 Java 驱动程序在超时之前等待发送或接收请求的最长时间（以毫秒为单位）。                                  |
| maxIdleTimeMS            | 否    | Integer | 指定最长时间（以毫秒为单位），Java 驱动程序将允许池连接在关闭连接之前处于空闲状态。                              |
| maxLifeTimeMS            | 否    | Integer | 指定 Java 驱动程序在关闭连接之前将继续使用池连接的最长时间（以毫秒为单位）。                                 |
| journal                  | 否    | Boolean | 指定驱动程序必须等待连接的 MongoDB 实例对所有写入的磁盘上的日志文件进行分组提交。                             |
| w                        | 否    | String  | 指定写关注。                                                                    |
| wtimeoutMS               | 否    | Integer | 指定写入问题的时间限制（以毫秒为单位）。                                                      |
| readPreference           | 否    | String  | 指定读取首选。                                                                   |
| readPreferenceTags       | 否    | String  | 指定读取首选项标签。                                                                |
| maxStalenessSeconds      | 否    | Integer | 以秒为单位指定在驱动程序停止与辅助节点通信之前辅助节点的陈旧程度。                                         |
| authMechanism            | 否    | String  | 指定在提供凭据时驱动程序应使用的身份验证机制。                                                   |
| authSource               | 否    | String  | 指定应针对所提供的凭据进行验证的数据库。                                                      |
| authMechanismProperties  | 否    | String  | 将指定身份验证机制的身份验证属性指定为以冒号分隔的属性和值的列表。                                         |
| appName                  | 否    | String  | 指定在连接握手期间提供给 MongoDB 实例的应用程序的名称。可用于服务器日志和分析。                              |
| compressors              | 否    | String  | 指定驱动程序将尝试使用的一种或多种压缩算法来压缩发送到连接的 MongoDB 实例的请求                              |
| zlibCompressionLevel     | 否    | String  | 指定 Zlib 应采用的压缩程度。                                                         |
| retryWrite               | 否    | Boolean | 指定如果支持的写操作由于网络错误而失败，驱动程序必须重试。默认为真。                                        |
| retryRead                | 否    | Boolean | 指定如果支持的读取操作由于网络错误而失败，驱动程序必须重试。默认为真。                                       |
| uuidRepresentation       | 否    | String  | 指定用于读取和写入操作的 UUID 表示。                                                     |
| directConnection         | 否    | String  | 指定驱动程序必须直接连接到主机。                                                          |
   
![](https://support.huaweicloud.com/devg-mas/public_sys-resources/caution_3.0-zh-cn.png)
ClientConfiguration中的url这一配置项，请勿配置MongoDB的用户名和密码。
