This closes #3775
This commit is contained in:
commit
7ce1006e9d
|
@ -938,27 +938,69 @@ nodes) the messages on those nodes would be lost unless the broker sent
|
||||||
them to another node in the cluster. Apache ActiveMQ Artemis can be configured to do
|
them to another node in the cluster. Apache ActiveMQ Artemis can be configured to do
|
||||||
just that.
|
just that.
|
||||||
|
|
||||||
The simplest way to enable this behavior is to set `scale-down` to
|
To enable this behavior configure `scale-down` in the `live-only`
|
||||||
`true`. If the server is clustered and `scale-down` is `true` then when
|
`ha-policy`, e.g.:
|
||||||
the server is shutdown gracefully (i.e. stopped without crashing) it
|
|
||||||
will find another node in the cluster and send *all* of its messages
|
|
||||||
(both durable and non-durable) to that node. The messages are processed
|
|
||||||
in order and go to the *back* of the respective queues on the other node
|
|
||||||
(just as if the messages were sent from an external client for the first
|
|
||||||
time).
|
|
||||||
|
|
||||||
If more control over where the messages go is required then specify
|
```xml
|
||||||
`scale-down-group-name`. Messages will only be sent to another node in
|
<ha-policy>
|
||||||
the cluster that uses the same `scale-down-group-name` as the server
|
<live-only>
|
||||||
being shutdown.
|
<scale-down>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<discovery-group-ref discovery-group-name="my-discovery-group"/>
|
||||||
|
</scale-down>
|
||||||
|
</live-only>
|
||||||
|
</ha-policy>
|
||||||
|
```
|
||||||
|
If `scale-down`/`enabled` is `true` then when the server is shutdown
|
||||||
|
gracefully (i.e. stopped without crashing) it will find another node in
|
||||||
|
the cluster and send *all* of its messages (both durable and non-durable)
|
||||||
|
to that node. The messages are processed in order and go to the *back* of
|
||||||
|
the respective queues on the other node (just as if the messages were
|
||||||
|
sent from an external client for the first time).
|
||||||
|
|
||||||
|
The _target_ of the scale down operation can be configured a few differnt
|
||||||
|
ways. The above example uses `discovery-group-ref` to reference a
|
||||||
|
`discovery-group` which will be used to find the target broker. This
|
||||||
|
should be the same `discovery-group` referenced by your `cluster-connection`.
|
||||||
|
You can also specify a static list of `connector` elements, e.g.:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<connectors>
|
||||||
|
...
|
||||||
|
<connector name="server0-connector">tcp://server0:61616</connector>
|
||||||
|
</connectors>
|
||||||
|
...
|
||||||
|
<ha-policy>
|
||||||
|
<live-only>
|
||||||
|
<scale-down>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<connectors>
|
||||||
|
<connector-ref>server0-connector</connector-ref>
|
||||||
|
</connectors>
|
||||||
|
</scale-down>
|
||||||
|
</live-only>
|
||||||
|
</ha-policy>
|
||||||
|
```
|
||||||
|
|
||||||
|
It's also possible to specify `group-name`. If this is specified then
|
||||||
|
messages will only be sent to another node in the cluster that uses the
|
||||||
|
same `group-name` as the server being shutdown, e.g.:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<ha-policy>
|
||||||
|
<live-only>
|
||||||
|
<scale-down>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<group-name>my-group</group-name>
|
||||||
|
<discovery-group-ref discovery-group-name="my-discovery-group"/>
|
||||||
|
</scale-down>
|
||||||
|
</live-only>
|
||||||
|
</ha-policy>
|
||||||
|
```
|
||||||
|
|
||||||
> **Warning**
|
> **Warning**
|
||||||
>
|
>
|
||||||
> If cluster nodes are grouped together with different
|
> If cluster nodes are grouped together with different
|
||||||
> `scale-down-group-name` values beware. If all the nodes in a single
|
> `group-name` values beware. If all the nodes in a single
|
||||||
> group are shut down then the messages from that node/group will be
|
> group are shut down then the messages from that node/group will be
|
||||||
> lost.
|
> lost.
|
||||||
|
|
||||||
If the server is using multiple `cluster-connection` then use
|
|
||||||
`scale-down-clustername` to identify the name of the
|
|
||||||
`cluster-connection` which should be used for scaling down.
|
|
||||||
|
|
Loading…
Reference in New Issue