ProxySQL MySQL वातावरण में एक बहुत ही लोकप्रिय प्रॉक्सी है। यह पढ़ने/लिखने के बंटवारे, क्वेरी कैशिंग और क्वेरी पुनर्लेखन सहित सुविधाओं के एक अच्छे सेट के साथ आता है। ProxySQL अपने कॉन्फ़िगरेशन को SQLite डेटाबेस में संग्रहीत करता है, कॉन्फ़िगरेशन परिवर्तन रनटाइम पर लागू किए जा सकते हैं और SQL कमांड के माध्यम से किए जाते हैं। यह सीखने की अवस्था को बढ़ाता है और कुछ लोगों के लिए एक अवरोधक हो सकता है जो इसे स्थापित करना चाहते हैं और इसे चलाना चाहते हैं।
यही कारण है कि कुछ टूल मौजूद हैं जो ProxySQL को प्रबंधित करने में आपकी सहायता कर सकते हैं। आइए उनमें से एक पर एक नज़र डालें, प्रॉक्सीएसक्यूएल-एडमिन, और इसकी तुलना क्लस्टरकंट्रोल में प्रॉक्सीएसक्यूएल के लिए उपलब्ध सुविधाओं से करें।
proxysql-admin
Proxysql-admin एक उपकरण है जो Percona रिपॉजिटरी से स्थापित होने पर ProxySQL में शामिल होता है। यह ProxySQL में Percona XtraDB क्लस्टर के सेटअप को आसान बनाने के लिए समर्पित है। आप कॉन्फ़िगरेशन फ़ाइल (/etc/proxysql-admin.cnf) में या प्रॉक्सीएसक्यूएल-एडमिन कमांड के तर्कों के माध्यम से सेटअप को परिभाषित कर सकते हैं। यह संभव है:
- पीएक्ससी के लिए होस्टग्रुप (रीडर, राइटर, बैकअप राइटर, ऑफलाइन) कॉन्फ़िगर करें
- ProxySQL और PXC में मॉनिटरिंग यूजर बनाएं
- ProxySQL और PXC में एप्लिकेशन यूजर बनाएं
- ProxySQL कॉन्फ़िगर करें (अधिकतम चल रहे कनेक्शन, अधिकतम लेन-देन पीछे)
- PXC और ProxySQL के बीच उपयोगकर्ताओं को सिंक्रोनाइज़ करें
- PXC और ProxySQL के बीच नोड्स को सिंक्रोनाइज़ करें
- पीएक्ससी से आयात किए गए उपयोगकर्ताओं के लिए पूर्वनिर्धारित (आर/डब्ल्यू स्प्लिट) क्वेरी नियम बनाएं
- SSL को प्रॉक्सीएसक्यूएल से बैकएंड डेटाबेस में कनेक्शन के लिए कॉन्फ़िगर करें
- पीएक्ससी के लिए एक लेखक या राउंड रॉबिन एक्सेस को परिभाषित करें
जैसा कि आप देख सकते हैं, यह किसी भी तरह से एक जटिल उपकरण नहीं है, यह प्रारंभिक सेटअप पर केंद्रित है। आइए कुछ उदाहरणों पर एक नज़र डालें।
[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 |
+---------------+-------+------------+------+--------+--------+----------+---------+-----------+
यहां ProxySQL में PXC नोड्स के डिफ़ॉल्ट कॉन्फ़िगरेशन का आउटपुट दिया गया है।
ClusterControl
ClusterControl, प्रॉक्सीएसक्यूएल-एडमिन की तुलना में, एक तरह से अधिक जटिल समाधान है। यह एक प्रॉक्सीएसक्यूएल लोड बैलेंसर को तैनात कर सकता है और इसे उपयोगकर्ता की आवश्यकताओं के अनुसार पूर्व-कॉन्फ़िगर कर सकता है।
तैनाती करते समय आप व्यवस्थापक उपयोगकर्ता और पासवर्ड को परिभाषित कर सकते हैं, उपयोगकर्ता की निगरानी कर सकते हैं और आप कर सकते हैं साथ ही मौजूदा MySQL उपयोगकर्ताओं में से एक को आयात करें (या यदि आपको इसकी आवश्यकता है तो एक नया बनाएं) एप्लिकेशन का उपयोग करने के लिए। अन्य ProxySQL से ProxySQL कॉन्फ़िगरेशन आयात करना भी संभव है जो आपके पास पहले से क्लस्टर में है। यह परिनियोजन को तेज़ और अधिक कुशल बनाता है।
यह भी उल्लेख करना महत्वपूर्ण है कि ClusterControl ProxySQL को MySQL और Galera क्लस्टर दोनों में तैनात कर सकता है। इसका उपयोग MySQL के MySQL, Percona और MariaDB फ्लेवर के साथ किया जा सकता है।
एक बार परिनियोजित होने के बाद, ClusterControl आपको उपयोग में आसान GUI के माध्यम से ProxySQL को पूरी तरह से प्रबंधित करने के विकल्प देता है।
आप अपने ProxySQL इंस्टेंस की निगरानी कर सकते हैं।
आप ProxySQL के माध्यम से निष्पादित भारी प्रश्नों की जांच कर सकते हैं। सटीक क्वेरी के आधार पर एक क्वेरी नियम बनाना भी संभव है।
ClusterControl ProxySQL को रीड/राइट स्प्लिट के लिए कॉन्फिगर करता है। आपकी आवश्यकताओं और एप्लिकेशन कॉन्फ़िगरेशन के आधार पर कस्टम क्वेरी नियम जोड़ना भी संभव है।
proxysql-admin की तुलना में, ClusterControl आपको सर्वर कॉन्फ़िगरेशन पर पूर्ण नियंत्रण देता है . आप नए सर्वर जोड़ सकते हैं, आप उन्हें अपनी इच्छानुसार होस्ट समूहों में स्थानांतरित कर सकते हैं। आप नए होस्टग्रुप बना सकते हैं (और फिर, उदाहरण के लिए, उनके लिए नए क्वेरी नियम बना सकते हैं)।
ProxySQL में उपयोगकर्ताओं को प्रबंधित करना भी संभव है। आप मौजूदा उपयोगकर्ताओं को संपादित कर सकते हैं, बैकएंड डेटाबेस में मौजूद नए उपयोगकर्ताओं को आयात कर सकते हैं।
थोक आयात भी संभव है। आप ProxySQL और बैकएंड डेटाबेस दोनों पर नए उपयोगकर्ता भी बना सकते हैं।
ClusterControl का उपयोग ProxySQL को पुन:कॉन्फ़िगर करने के लिए भी किया जा सकता है। आप खोज विकल्प के साथ एक साधारण UI के माध्यम से सभी चरों को संशोधित कर सकते हैं।
जैसा कि आप देख सकते हैं, ClusterControl ProxySQL के लिए गहन प्रबंधन सुविधाओं के साथ आता है। यह आपको ProxySQL इंस्टेंस को आसानी से परिनियोजित और प्रबंधित करने की अनुमति देता है।