ProxySQL е много популярен прокси в MySQL среди. Той идва с приятен набор от функции, включително разделяне на четене/запис, кеширане на заявки и пренаписване на заявки. ProxySQL съхранява своята конфигурация в база данни на SQLite, промените в конфигурацията могат да се прилагат по време на изпълнение и се изпълняват чрез SQL команди. Това увеличава кривата на обучение и може да бъде блокер за някои хора, които биха искали просто да го инсталират и да го пуснат да работи.
Това е причината да съществуват няколко инструмента, които могат да ви помогнат да управлявате ProxySQL. Нека да разгледаме един от тях, proxysql-admin, и да го сравним с функциите, налични за ProxySQL в ClusterControl.
proxysql-admin
Proxysql-admin е инструмент, който е включен в ProxySQL, когато е инсталиран от хранилища на Percona. Той е посветен на улесняването на настройката на Percona XtraDB Cluster в ProxySQL. Можете да дефинирате настройката в конфигурационния файл (/etc/proxysql-admin.cnf) или чрез аргументи към командата proxysql-admin. Възможно е да:
- Конфигуриране на хост групи (четец, записващ, архивен запис, офлайн) за PXC
- Създаване на потребител за наблюдение в ProxySQL и PXC
- Създайте потребител на приложение в ProxySQL и PXC
- Конфигуриране на ProxySQL (максимално работещи връзки, максимални транзакции зад)
- Синхронизиране на потребителите между PXC и ProxySQL
- Синхронизиране на възли между PXC и ProxySQL
- Създаване на предварително дефинирани (R/W разделяне) правила за заявка за потребители, импортирани от PXC
- Конфигуриране на SSL за връзки от ProxySQL към задните бази данни
- Дефинирайте единичен записващ или кръгов достъп до PXC
Както можете да видите, това в никакъв случай не е сложен инструмент, той се фокусира върху първоначалната настройка. Нека да разгледаме няколко примера.
[email protected]:~# proxysql-admin --enable
This script will assist with configuring ProxySQL for use with
Percona XtraDB Cluster (currently only PXC in combination
with ProxySQL is supported)
ProxySQL read/write configuration mode is singlewrite
Configuring the ProxySQL monitoring user.
ProxySQL monitor user name as per command line/config-file is proxysql-monitor
The monitoring user is already present in Percona XtraDB Cluster.
Would you like to enter a new password [y/n] ? n
Monitoring user 'proxysql-monitor'@'10.%' has been setup in the ProxySQL database.
Configuring the Percona XtraDB Cluster application user to connect through ProxySQL
Percona XtraDB Cluster application user name as per command line/config-file is proxysql_user
Application user 'proxysql_user'@'10.%' already present in PXC.
Adding the Percona XtraDB Cluster server nodes to ProxySQL
Write node info
+------------+--------------+------+--------+
| hostname | hostgroup_id | port | weight |
+------------+--------------+------+--------+
| 10.0.0.152 | 10 | 3306 | 1000 |
+------------+--------------+------+--------+
ProxySQL configuration completed!
ProxySQL has been successfully configured to use with Percona XtraDB Cluster
You can use the following login credentials to connect your application through ProxySQL
mysql --user=proxysql_user -p --host=localhost --port=6033 --protocol=tcp
По-горе е показана първоначалната настройка. Както можете да видите, беше използван режим на единичен запис (по подразбиране), конфигурирани са потребители за наблюдение и приложения и цялата конфигурация на сървъра беше подготвена.
[email protected]:~# proxysql-admin --status
mysql_galera_hostgroups row for writer-hostgroup: 10
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
| writer | reader | backup-writer | offline | active | max_writers | writer_is_also_reader | max_trans_behind |
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
| 10 | 11 | 12 | 13 | 1 | 1 | 2 | 100 |
+--------+--------+---------------+---------+--------+-------------+-----------------------+------------------+
mysql_servers rows for this configuration
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
| hostgroup | hg_id | hostname | port | status | weight | max_conn | use_ssl | gtid_port |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
| writer | 10 | 10.0.0.153 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| reader | 11 | 10.0.0.151 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| reader | 11 | 10.0.0.152 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.0.0.151 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.0.0.152 | 3306 | ONLINE | 1000 | 1000 | 0 | 0 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Ето изходът от конфигурацията по подразбиране на PXC възлите в ProxySQL.
ClusterControl
ClusterControl е, в сравнение с proxysql-admin, много по-сложно решение. Той може да разгърне ProxySQL балансиране на натоварването и да го конфигурира предварително според изискванията на потребителя.
При внедряването можете да дефинирате администраторски потребител и парола, да наблюдавате потребителя и можете да както и импортирайте един от съществуващите потребители на MySQL (или създайте нов, ако това е това, от което се нуждаете), за да го използва приложението. Възможно е също така да импортирате конфигурация на ProxySQL от друг ProxySQL, който вече имате в клъстера. Това прави внедряването по-бързо и по-ефективно.
Това, което също е важно да се спомене, е, че ClusterControl може да внедри ProxySQL както в MySQL, така и в клъстерите Galera. Може да се използва с MySQL, Percona и MariaDB вкусове на MySQL.
Веднъж разгърнат, ClusterControl ви дава опции за пълно управление на ProxySQL чрез лесен за използване графичен интерфейс.
Можете да наблюдавате своя ProxySQL екземпляр.
Можете да проверите по-тежките заявки, изпълнявани чрез ProxySQL. Възможно е също така да създадете правило за заявка въз основа на точната заявка.
ClusterControl конфигурира ProxySQL за разделяне на четене/запис. Възможно е също да добавите персонализирани правила за заявка въз основа на вашите изисквания и конфигурация на приложението.
В сравнение с proxysql-admin, ClusterControl ви дава пълен контрол върху конфигурацията на сървъра . Можете да добавяте нови сървъри, можете да ги премествате из хост групи, както искате. Можете да създадете нови хостгрупи (и след това, например, да създадете нови правила за заявка за тях).
Възможно е също така да управлявате потребители в ProxySQL. Можете да редактирате съществуващи потребители, да импортирате нови потребители, които съществуват в задната база данни.
Възможно е и групово импортиране. Можете също да създавате нови потребители както на ProxySQL, така и на бекенд бази данни.
ClusterControl може да се използва и за преконфигуриране на ProxySQL. Можете да промените всички променливи чрез прост потребителски интерфейс с опция за търсене.
Както можете да видите, ClusterControl идва с функции за задълбочено управление за ProxySQL. Позволява ви с лекота да разгръщате и управлявате екземпляри на ProxySQL.