ProxySQL là một proxy rất phổ biến trong môi trường MySQL. Nó đi kèm với một tập hợp các tính năng tuyệt vời bao gồm phân tách đọc / ghi, bộ nhớ đệm truy vấn và ghi lại truy vấn. ProxySQL lưu trữ cấu hình của nó trong cơ sở dữ liệu SQLite, các thay đổi cấu hình có thể được áp dụng trong thời gian chạy và được thực hiện thông qua các lệnh SQL. Điều này làm tăng đường cong học tập và có thể là một công cụ chặn đối với một số người chỉ muốn cài đặt nó và chạy nó.
Đây là lý do tại sao có một số công cụ có thể giúp bạn quản lý ProxySQL. Hãy xem xét một trong số họ, proxysql-admin và so sánh nó với các tính năng có sẵn cho ProxySQL trong ClusterControl.
proxysql-admin
Proxysql-admin là một công cụ đi kèm trong ProxySQL khi được cài đặt từ kho lưu trữ Percona. Nó dành riêng cho việc thiết lập Percona XtraDB Cluster trong ProxySQL dễ dàng hơn. Bạn có thể xác định thiết lập trong tệp cấu hình (/etc/proxysql-admin.cnf) hoặc thông qua các đối số của lệnh proxysql-admin. Có thể:
- Định cấu hình các nhóm máy chủ (người đọc, người viết, người viết sao lưu, ngoại tuyến) cho PXC
- Tạo người dùng giám sát trong ProxySQL và PXC
- Tạo người dùng ứng dụng trong ProxySQL và PXC
- Định cấu hình ProxySQL (các kết nối đang chạy tối đa, các giao dịch tối đa phía sau)
- Đồng bộ hóa người dùng giữa PXC và ProxySQL
- Đồng bộ hóa các nút giữa PXC và ProxySQL
- Tạo quy tắc truy vấn xác định trước (phân tách R / W) cho người dùng được nhập từ PXC
- Định cấu hình SSL cho các kết nối từ ProxySQL đến cơ sở dữ liệu phụ trợ
- Xác định một người viết hoặc quyền truy cập toàn vòng vào PXC
Như bạn có thể thấy, đây không phải là một công cụ phức tạp, nó tập trung vào thiết lập ban đầu. Hãy xem một vài ví dụ.
[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
Ở trên hiển thị thiết lập ban đầu. Như bạn có thể thấy, chế độ ghi đơn (mặc định) đã được sử dụng, người dùng giám sát và ứng dụng đã được định cấu hình và toàn bộ cấu hình máy chủ đã được chuẩn bị.
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
Đây là đầu ra của cấu hình mặc định của các nút PXC trong ProxySQL.
ClusterControl
ClusterControl, so với proxysql-admin, là một giải pháp phức tạp hơn. Nó có thể triển khai bộ cân bằng tải ProxySQL và định cấu hình trước nó theo yêu cầu của người dùng.
Khi triển khai, bạn có thể xác định người dùng và mật khẩu quản trị viên, giám sát người dùng và bạn có thể cũng như nhập một trong những người dùng MySQL hiện có (hoặc tạo một người dùng mới nếu đây là những gì bạn cần) để ứng dụng sử dụng. Cũng có thể nhập cấu hình ProxySQL từ ProxySQL khác mà bạn đã có trong cụm. Nó giúp việc triển khai nhanh hơn và hiệu quả hơn.
Điều quan trọng cần đề cập là ClusterControl có thể triển khai ProxySQL trong cả MySQL và Galera Cluster. Nó có thể được sử dụng với các phiên bản MySQL, Percona và MariaDB của MySQL.
Sau khi được triển khai, ClusterControl cung cấp cho bạn các tùy chọn để quản lý đầy đủ ProxySQL thông qua GUI dễ sử dụng.
Bạn có thể giám sát phiên bản ProxySQL của mình.
Bạn có thể kiểm tra các truy vấn nặng hơn được thực thi thông qua ProxySQL. Cũng có thể tạo quy tắc truy vấn dựa trên truy vấn chính xác.
ClusterControl định cấu hình ProxySQL để đọc / ghi. Cũng có thể thêm các quy tắc truy vấn tùy chỉnh dựa trên yêu cầu và cấu hình ứng dụng của bạn.
So với proxysql-admin, ClusterControl cung cấp cho bạn toàn quyền kiểm soát cấu hình máy chủ . Bạn có thể thêm máy chủ mới, bạn có thể di chuyển chúng xung quanh các nhóm máy chủ lưu trữ như bạn muốn. Bạn có thể tạo các nhóm máy chủ mới (và sau đó, ví dụ:tạo các quy tắc truy vấn mới cho chúng).
Cũng có thể quản lý người dùng trong ProxySQL. Bạn có thể chỉnh sửa người dùng hiện có, nhập người dùng mới tồn tại trong cơ sở dữ liệu phụ trợ.
Nhập hàng loạt cũng có thể thực hiện được. Bạn cũng có thể tạo người dùng mới trên cả cơ sở dữ liệu ProxySQL và cơ sở dữ liệu phụ trợ.
ClusterControl cũng có thể được sử dụng để định cấu hình lại ProxySQL. Bạn có thể sửa đổi tất cả các biến thông qua giao diện người dùng đơn giản với tùy chọn tìm kiếm.
Như bạn có thể thấy, ClusterControl đi kèm với các tính năng quản lý chuyên sâu cho ProxySQL. Nó cho phép bạn triển khai và quản lý các phiên bản ProxySQL một cách dễ dàng.