MaxScale с мультикластерной настройкой
Я работал над сценарием высокой доступности для некоторых серверов баз данных и проверил MaxScale & HAProxy, и оба они кажутся очень интересными, но проблема в следующем. При настройке MaxScale все шло хорошо, пока я не обнаружил, что я не вижу способа создания нескольких кластеров на одном экземпляре MaxScale, но это необходимо для количества серверов баз данных, которыми нужно будет управлять с помощью одного экземпляра MaxScale.
Есть ли способ реализовать несколько кластеров при настройке MaxScale или это просто то, что не реализовано в MaxScale?
Спасибо за помощь
1 ответ
Чтобы использовать несколько кластеров с одним MaxScale, просто определите несколько серверов, мониторов, служб и прослушивателей. Вот пример одного кластера, используемого в качестве службы:
[server1]
type=server
address=127.0.0.1
port=3000
protocol=MariaDBBackend
[server2]
type=server
address=127.0.0.1
port=3001
protocol=MariaDBBackend
[Cluster-1-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2
user=maxuser
passwd=maxpwd
monitor_interval=5000
[Cluster-1-Router]
type=service
router=readwritesplit
servers=server1,server2
user=maxuser
passwd=maxpwd
[Cluster-1-Listener]
type=listener
service=Cluster-1-Router
protocol=MariaDBClient
port=4006
Это предоставит сервис разделения чтения-записи на порт 4006, который будет выполнять разделение чтения-записи по серверам server1
а также server2
,
Чтобы определить еще один, просто добавьте:
- Серверы, которые определяют кластер
- Монитор для мониторинга серверов
- Сервис, который использует серверы
- Слушатель, который подключается к службе
Таким образом, вы можете выставить несколько портов, которые подключаются к разным кластерам. Например, один кластер может прослушивать порт 4006, а другой - 4007. Затем эти два кластера можно использовать для подключения двух разных приложений к двум разным кластерам.