MXS-2313: Document rank
Added documentation along with a few examples of how the parameter behaves and how it can be used.
This commit is contained in:
@ -1556,6 +1556,98 @@ Note that the path to be used, is one of the paths returned by:
|
|||||||
There is no default value, but this parameter must be explicitly specified
|
There is no default value, but this parameter must be explicitly specified
|
||||||
if the disk space situation should be monitored.
|
if the disk space situation should be monitored.
|
||||||
|
|
||||||
|
#### `rank`
|
||||||
|
|
||||||
|
The ranking of this server. Servers with a lower value of `rank` are prioritized
|
||||||
|
over servers with a higher value. This parameter is intended to allow the user
|
||||||
|
to control in which order the servers of a cluster are used.
|
||||||
|
|
||||||
|
The default value is 2147483647 which is also the upper limit for the value. The
|
||||||
|
lowest accepted value is 1. This parameter replaces the use of the `weightby`
|
||||||
|
parameter as the primary means of controlling server usage.
|
||||||
|
|
||||||
|
Each server that shares the same `rank` is placed into a set and only one set of
|
||||||
|
servers is used at any one time. This behavior depends on the router
|
||||||
|
implementation which is why there are a few exceptions to this rule.
|
||||||
|
|
||||||
|
One exception to the rule is when a readwritesplit session must find a master
|
||||||
|
server but the rank of the master is not the lowest among all available
|
||||||
|
servers. In this case readwritesplit will pick the master with the lowest value
|
||||||
|
of rank among all master servers.
|
||||||
|
|
||||||
|
The following example configuration demonstrates how the parameter is used.
|
||||||
|
|
||||||
|
```
|
||||||
|
[A]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.11
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=1
|
||||||
|
|
||||||
|
[B]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.22
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=2
|
||||||
|
|
||||||
|
[C]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.33
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=2
|
||||||
|
|
||||||
|
[D]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.44
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
```
|
||||||
|
|
||||||
|
The three servers, A, B and C, each have a `rank` value. Server D has no rank so
|
||||||
|
the default value is used. Three distinct sets of servers are created:
|
||||||
|
|
||||||
|
1. A
|
||||||
|
2. B and C
|
||||||
|
3. D
|
||||||
|
|
||||||
|
If A is available, it will always be used. When A is not available, both B and C
|
||||||
|
are used. Only when D is the last available server will it be used.
|
||||||
|
|
||||||
|
Another example use-case for this is a remote server (D) replicating from a
|
||||||
|
cluster (A, B, C) that is primarily used for backups but in case of a total
|
||||||
|
cluster failure is also used as a read-only standbyu server. To configure this
|
||||||
|
in MaxScale using `rank` the following could be used.
|
||||||
|
|
||||||
|
```
|
||||||
|
[A]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.11
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=1
|
||||||
|
|
||||||
|
[B]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.22
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=1
|
||||||
|
|
||||||
|
[C]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.33
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=1
|
||||||
|
|
||||||
|
[D]
|
||||||
|
type=server
|
||||||
|
address=192.168.0.44
|
||||||
|
protocol=MariaDBBackend
|
||||||
|
rank=2
|
||||||
|
```
|
||||||
|
|
||||||
|
With this configuration the three servers in the primary cluster (A, B, C) would
|
||||||
|
be used. Only when the whole primary cluster is down would server D be used and
|
||||||
|
as soon as any of the primary servers became available, D would stop receiving
|
||||||
|
traffic.
|
||||||
|
|
||||||
### Listener
|
### Listener
|
||||||
|
|
||||||
The listener defines a port and protocol pair that is used to listen for
|
The listener defines a port and protocol pair that is used to listen for
|
||||||
|
|||||||
Reference in New Issue
Block a user