

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon MQ 子元素属性
<a name="child-element-details"></a>

下面是子元素属性的详细说明。有关更多信息，请参阅 Apache ActiveMQ 文档中的 [XML 配置](http://activemq.apache.org/xml-configuration.html)。

**Topics**
+ [authorizationEntry](#authorizationEntry)
+ [networkConnector](#networkConnector)
+ [kahaDB](#kahaDB)
+ [systemUsage](#systemUsage)

## authorizationEntry
<a name="authorizationEntry"></a>

`authorizationEntry` 是 `authorizationEntries` 子集合元素的子项。

### 属性
<a name="admin-read-write-attributes"></a>

#### admin\$1read\$1write
<a name="admin-read-write"></a>

授予一组用户的权限。有关更多信息，请参阅 [始终配置授权映射](using-amazon-mq-securely.md#always-configure-authorization-map)。

如果您指定的授权映射不包含在 `activemq-webconsole` 组中，您无法使用 ActiveMQ Web 控制台，因为该组未获得授权向 Amazon MQ 代理发送消息或接收来自该代理的消息。

**默认值**：`null`

### 示例配置
<a name="admin-read-write-example"></a>

```
<authorizationPlugin>
                                <map>
                                    <authorizationMap>
                                        <authorizationEntries>
                                            <authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" queue=">"/>
                                            <authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" topic=">"/>
                                        </authorizationEntries>
                                    </authorizationMap>
                                </map>
                                </authorizationPlugin>
```

**注意**  
 ActiveMQ on Amazon MQ 中的 `activemq-webconsole` 组拥有所有队列和主题的管理权限。该组中的所有用户都有管理员访问权限。

## networkConnector
<a name="networkConnector"></a>

`networkConnector` 是 `networkConnectors` 子集合元素的子项。

**Topics**
+ [属性](#networkConnector-attributes)
+ [示例配置](#networkConnector-example)

### 属性
<a name="networkConnector-attributes"></a>

#### conduitSubscriptions
<a name="conduitSubscriptions"></a>

指定代理网络中的网络连接是否将订阅同一目标的多个使用者视为一个使用者。例如，如果 `conduitSubscriptions` 设置为 `true`，并且两个使用者连接到代理 B 并从目标中使用，则代理 B 会通过与代理 A 的网络连接将订阅组合到单个逻辑订阅中，以便只有一个消息副本从代理 A 转发到代理 B。

**注意**  
将 `conduitSubscriptions` 设置为 `true` 可以减少冗余网络流量。但是，使用此属性可能会影响跨使用者的消息负载均衡，并可能在某些情况下导致不正确的行为（例如，对于 JMS 消息选择器或持久主题）。

**默认值**：`true`

#### duplex
<a name="duplex"></a>

指定代理网络中的连接是否用于生成*和*使用消息。例如，如果代理 A 在非双工模式下创建与代理 B 的连接，则消息只能从代理 A 转发到代理 B。但是，如果代理 A 创建到代理 B 的双工连接，则代理 B 可以将消息转发到代理 A 而无需配置 `<networkConnector>`。

**默认值**：`false`

#### name
<a name="name"></a>

代理网络中的网桥的名称。

**默认值**：`bridge`

#### uri
<a name="uri"></a>

代理网络中两个代理（或多个代理）之一的有线级协议终端节点。

**默认值**：`null`

#### username
<a name="username"></a>

代理网络中的代理共有的用户名。

**默认值**：`null`

### 示例配置
<a name="networkConnector-example"></a>

**注意**  
当使用 `networkConnector` 来定义代理网络时，请勿包含代理共有的用户的密码。

#### 有两个代理的代理网络
<a name="example-network-of-brokers-two-brokers"></a>

在此配置中，两个代理连接在代理网络中。网络连接器的名称是`connector_1_to_2`，代理常用的用户名是`myCommonUser`，连接是`duplex`， OpenWire 端点 URI 的前缀为`static:`，表示代理之间存在 one-to-one连接。

```
<networkConnectors>
                                    <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
                                        uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
                                    </networkConnectors>
```

有关更多信息，请参阅 [步骤 2：为您的代理配置网络连接器](amazon-mq-creating-configuring-network-of-brokers.md#creating-configuring-network-of-brokers-configure-network-connectors)。

#### 有多个代理的代理网络
<a name="example-network-of-brokers-multiple-brokers"></a>

在此配置中，多个代理连接在代理网络中。网络连接器的名称是`connector_1_to_2`，代理常用的用户名是，连接是 `myCommonUser``duplex`，逗号分隔的 OpenWire端点列表以逗号分隔 URIs 为前缀`masterslave:`，表示代理之间存在故障转移连接。从代理到代理的故障转移不是随机的，重新连接尝试将无限期地继续。

```
<networkConnectors>
                                    <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
                                        uri="masterslave:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617,
                                        ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-west-2.amazonaws.com:61617)"/>
                                    </networkConnectors>
```

**注意**  
我们建议您对网络代理使用 `masterslave:` 前缀。该前缀与更明确的 `static:failover:()?randomize=false&maxReconnectAttempts=0` 语法相同。

**注意**  
此 XML 配置不允许使用空格。

## kahaDB
<a name="kahaDB"></a>

`kahaDB` 是 `persistenceAdapter` 子集合元素的子项。

### 属性
<a name="kahaDB-attributes"></a>

#### concurrentStoreAndDispatchQueues
<a name="concurrentStoreAndDispatchQueues"></a>

指定是否对队列使用并发存储和分派。有关更多信息，请参阅 [对具有慢速使用者的队列禁用并发存储和分派](best-practices-activemq.md#disable-concurrent-store-and-dispatch-queues-flag-slow-consumers)。

**默认值**：`true`

#### cleanupOnStop
<a name="cleanupOnStop"></a>

**在以下版本中受支持：**  
Apache ActiveMQ 15.16.x 及更高版本

如果停用，则不会在代理停止时进行垃圾回收和清理，从而加快关闭过程。在使用大型数据库或调度器数据库的情况下，提高速度非常有用。

**默认值**：`true`

#### journalDiskSync间隔
<a name="journalDiskSyncInterval"></a>

在 `journalDiskSyncStrategy=periodic` 的情况下，执行磁盘同步的时间间隔 (毫秒)。有关详细信息，请参阅 [Apache ActiveMQ kahaDB 文档](https://activemq.apache.org/kahadb)。

**默认值**：`1000`

#### journalDiskSync策略
<a name="journalDiskSyncStrategy"></a>

**在以下版本中受支持：**  
Apache ActiveMQ 15.14.x 及更高版本

配置磁盘同步策略。有关详细信息，请参阅 [Apache ActiveMQ kahaDB 文档](https://activemq.apache.org/kahadb)。

**默认值**：`always`

**注意**  
[ActiveMQ 文档](https://activemq.apache.org/kahadb)规定数据损失仅限于持续时间 `journalDiskSyncInterval`，其默认值为 1 秒。数据损失可以超过该间隔，但很难精确确定。请谨慎使用。

#### preallocationStrategy
<a name="preallocationStrategy"></a>

配置在需要新日志文件时，代理尝试预分配日志文件的方式。有关详细信息，请参阅 [Apache ActiveMQ kahaDB 文档](https://activemq.apache.org/kahadb)。

**默认值**：`sparse_file`

### 示例配置
<a name="kahaDB-example"></a>

**Example**  

```
<broker xmlns="http://activemq.apache.org/schema/core">
                                <persistenceAdapter>
                                <kahaDB preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false" journalDiskSyncInterval="10000" journalDiskSyncStrategy="periodic"/>
                            </persistenceAdapter>
                            </broker>
```

## systemUsage
<a name="systemUsage"></a>

`systemUsage` 是 `systemUsage` 子集合元素的子项。该元素控制代理在减缓创建器速度之前使用的最大空间量。有关更多信息，请参阅 Apache ActiveMQ 文档中的[创建器流控制](http://activemq.apache.org/producer-flow-control.html)。

### 子元素
<a name="systemUsage-child"></a>

#### memoryUsage
<a name="memoryUsage"></a>

 `memoryUsage` 是 `systemUsage` 子元素的子项。该元素管理内存使用情况。使用 `memoryUsage` 可以跟踪正在使用的内存量，这样您可以高效地控制工作集的使用情况。有关更多信息，请参阅 Apache ActiveMQ 文档中的[架构](http://activemq.apache.org/schema/core/activemq-core-5.15.12-schema.html)。

##### 子元素
<a name="memoryUsage-child"></a>

 `memoryUsage` 是 `memoryUsage` 子元素的子项。

##### 属性
<a name="memeoryUsage-attribute"></a>

##### percentOfJvmHeap
<a name="percentOfJvmHeap"></a>

介于 0（含）与 70（含）之间的整数。

*默认值*：`70`

### 属性
<a name="systemUsage-attributes"></a>

#### sendFailIfNoSpace
<a name="sendFailIfNoSpace"></a>

设置在没有可用空间的情况下 `send()` 方法是否应失败。默认值为 false，该值会阻止 `send()` 方法，直至有空间可用。有关更多信息，请参阅 Apache ActiveMQ 文档中的[架构](http://activemq.apache.org/schema/core/activemq-core-5.15.12-schema.html)。

**默认值**：`false`

#### sendFailIfNoSpaceAfterTimeout
<a name="sendFailIfNoSpaceAfterTimeout"></a>

**默认值**：`null`

#### 示例配置
<a name="systemUsage-example"></a>

**Example**  

```
<broker xmlns="http://activemq.apache.org/schema/core">
                                <systemUsage>
                                <systemUsage sendFailIfNoSpace="true" sendFailIfNoSpaceAfterTimeout="2000">
                                    <memoryUsage>
                                        <memoryUsage  percentOfJvmHeap="60" />
                                    </memoryUsage>>
                                </systemUsage>
                                </systemUsage>
                            </broker>
                            </persistenceAdapter>
```