MySQL Fabric ialah rangka kerja yang boleh diperluaskan untuk mengurus kumpulan pelayan MySQL Ia adalah perisian sumber terbuka GPL iaitu, pengguna boleh menggunakan dan mengubah suai perisian ini secara bebas mengikut spesifikasi GPL. fabrik mysql ialah proses yang mengendalikan sebarang permintaan pengurusan apabila menggunakan ciri HA, anda boleh membuat proses ini bertanggungjawab untuk memantau pelayan induk dan, sekiranya berlaku kegagalan, memulakan failover dan menaik taraf pelayan hamba kepada pelayan induk.
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Pengenalan Fabric MySQL
MySQL Fabric ialah rangka kerja yang boleh diperluas untuk mengurus ladang pelayan MySQL.
MySQL Fabric boleh "menyusun" berbilang pangkalan data MySQL Sistem aplikasi mengedarkan jadual yang lebih besar daripada beberapa TB kepada berbilang pangkalan data, iaitu Data Shard. Shard yang sama boleh mengandungi berbilang pangkalan data, dan Fabric secara automatik memilih yang sesuai sebagai pangkalan data induk, dan pangkalan data lain dikonfigurasikan sebagai pangkalan data hamba untuk replikasi induk-hamba. Apabila pangkalan data induk ditutup, salah satu pangkalan data hamba dipilih untuk dinaikkan pangkat ke pangkalan data induk. Selepas itu, pangkalan data hamba lain dipindahkan ke pangkalan data utama baharu untuk menyalin data baharu. Nota: "automatik" yang disebut di sini bermakna MySQL Fabric melengkapkannya di latar belakang tanpa memerlukan pengguna menukar konfigurasi secara manual. Perkara yang paling penting ialah MySQL Fabric ialah perisian sumber terbuka GPL, yang bermaksud anda boleh menggunakan dan mengubah suai perisian ini secara bebas di bawah spesifikasi GPL.
Rangka kerja Fabrik melaksanakan dua ciri: ketersediaan tinggi (ketersediaan tinggi) dan pengembangan mendatar (sharding) menggunakan pemecahan data Kedua-dua ciri ini boleh digunakan secara bersendirian atau digabungkan.
Kedua-dua ciri dilaksanakan berdasarkan dua peringkat berikut:
fabrik mysql ialah proses yang mengendalikan sebarang permintaan pengurusan. Apabila menggunakan ciri HA, anda juga boleh membiarkan proses ini memantau pelayan induk dan memulakan failover apabila kegagalan berlaku, menaik taraf pelayan hamba kepada pelayan induk. Penyambung MySQL Fabric-aware menyimpan maklumat penghalaan yang diperoleh daripada MySQL Fabric dalam cache dan kemudian menggunakan maklumat ini untuk menghantar transaksi atau pertanyaan ke pelayan MySQL yang betul.
Ketersediaan Tinggi
Kumpulan HA terdiri daripada dua atau lebih pelayan MySQL pada bila-bila masa, salah satu pelayan berfungsi sebagai pelayan induk (master MySQL fungsi replikasi), dan pelayan lain berfungsi sebagai pelayan hamba (pelayan hamba untuk fungsi replikasi MySQL). Peranan kumpulan HA adalah untuk memastikan bahawa data yang disimpan dalam kumpulan sentiasa boleh diakses. Fungsi replikasi MySQL memastikan keselamatan data melalui replikasi, dan penyelesaian ketersediaan tinggi MySQL Fabric menyediakan dua elemen tambahan penting atas dasar ini:
Pengesanan dan naik taraf kerosakan—Pemantauan Fabrik MySQL Kumpulan HA Pelayan induk dalam pelayan induk, dalam peristiwa kegagalan pelayan induk, memilih pelayan hamba dan mempromosikannya ke pelayan induk Penghalaan permintaan pangkalan data - operasi penghalaan permintaan tulis ke pelayan induk dan pengimbangan beban permintaan baca antara pelayan hamba Telus kepada aplikasi, walaupun apabila topologi berubah semasa failover
Sharding — skala kecilkan
apabila dekat dengan pelayan MySQL (atau kumpulan HA) Apabila had prestasi kapasiti atau penulisan dicapai, MySQL Fabric menyokong penskalaan mendatar pelayan pangkalan data dengan membahagikan data merentas berbilang pelayan MySQL "kumpulan." Ambil perhatian bahawa kumpulan boleh mengandungi hanya satu pelayan MySQL, atau ia boleh menjadi kumpulan HA. Pentadbir mentakrifkan cara data dipecahkan di antara pelayan ini dengan menyatakan lajur jadual yang harus digunakan sebagai kunci pemecahan, dan sama ada hendak menggunakan pemetaan HASH atau pemetaan RANGE untuk memetakan kunci ini kepada serpihan yang betul, jika serpihan selanjutnya diperlukan serpihan sedia ada; selain itu, serpihan boleh diagihkan semula.
Masalah yang perlu diselesaikan oleh MySQL Fabric
Untuk menyelesaikan masalah peningkatan kerumitan aplikasi, seseorang menambah proksi antara aplikasi dan pelayan pangkalan data (proksi) atau menjadi suis, aplikasi memiliki Arahan untuk pangkalan data mula-mula dihantar kepada proksi, dan kemudian proksi menentukan pangkalan data yang hendak dipindahkan ke . Gambar di bawah ialah gambarajah skematik pelan ini. Ini mungkin menyelesaikan masalah aplikasi sukar diselenggara, tetapi apabila bilangan aplikasi meningkat, pemecahan pangkalan data meningkat atau tekanan sistem meningkat , suis ini akan menjadi kapasiti dan prestasi kesesakan dan satu titik kegagalan (apabila ia turun, aplikasi tidak dapat mencari pangkalan data ), dan semua arahan pangkalan data perlu dihantar Dua kali (pertama bertukar dan kemudian ke pangkalan data). Setiap pertanyaan mencipta beban tambahan.
Seni bina Fabrik MySQL
MySQL Fabric menggunakan pendekatan yang berbeza, dan seni binanya ditunjukkan dalam rajah di bawah. Ciri utama adalah untuk menggabungkan suis ke dalam penyambung pada setiap bahagian aplikasi untuk menyelesaikan satu titik kegagalan dan kesesakan prestasi bagi satu suis.
Fabrik MySQL terdiri daripada tiga bahagian:
ialah skrip python dan merupakan teras kepada keseluruhan seni bina.
Fungsi utama nod pengurusan Fabric MySQL adalah untuk menguruskan keseluruhan Ladang Pelayan Pangkalan Data Apabila ia bermula, ia akan mencari fail konfigurasi /etc/mysql/fabric.cnf, dan gunakannya untuk Menentukan lokasi pangkalan data MySQL, port, akaun sambungan dan maklumat lain di sebalik fabrik sebagai repositori yang menyimpan seni bina dan konfigurasi Ladang Pelayan.
Apabila Fabric dimulakan (laksanakan perintah persediaan mysqlfabric manage), ia akan membuka skema pada pangkalan data MySQL (biasanya pangkalan data bernama fabric) untuk menyimpan maklumat konfigurasi Server Farm , kumpulan pelayan mana yang terdiri daripada pangkalan data, pelayan induk dan hamba mana yang ada dalam setiap kumpulan pelayan, dsb.
Apabila menyediakan konfigurasi, nod Fabric MySQL akan mengeluarkan arahan untuk mewujudkan replikasi induk-hamba bagi setiap pangkalan data dalam Ladang Pelayan (garisan merah dalam rajah di atas).
Selalu ping pelayan utama setiap kumpulan semasa operasi biasa Apabila didapati bahawa pangkalan data utama tidak berjalan seperti biasa, ia akan memulakan program failover dan mencari pangkalan data hamba dalam. Ladang pelayan. Pangkalan data hamba lain akan beralih kepada pangkalan data induk baharu untuk meneruskan replikasi data.
Ini adalah enjin yang berfungsi dalam keseluruhan seni bina Dalam aplikasi pangkalan data tradisional, ini adalah MySQL tunggal pangkalan data, manakala MySQL Fabric menggunakan pelbagai pangkalan data untuk menyokong keperluan skala data yang besar (terabait atau lebih) dan pangkalan data ketersediaan tinggi. Pangkalan data ini dibahagikan kepada beberapa kumpulan ketersediaan tinggi (Kumpulan HA), setiap kumpulan mengandungi lebih daripada satu pelayan pangkalan data. Jika terdapat beberapa pangkalan data dalam kumpulan ketersediaan tinggi, MySQL Fabric akan memilih (menggunakan perintah mysqlfabric group promote command) untuk mempromosikan satu kepada pangkalan data induk (Master), dan pangkalan data lain akan menjadi pangkalan data hamba (Slave). akan menyalin perubahan pangkalan data induk dan menyiapkan replikasi induk-hamba dalam kumpulan ketersediaan tinggi yang sama. Pada masa hadapan, Fabric akan mengakses pangkalan data utama ini secara berkala. Apabila data utama turun, Fabric akan memilih satu daripada kumpulan ketersediaan tinggi dan mempromosikannya kepada pangkalan data utama, dan pangkalan data lain akan beralih kepada pangkalan data utama baharu ini untuk meneruskan replikasi.
Apabila sistem aplikasi berjalan, setiap arahan SQL akan dihantar ke pangkalan data melalui penyambung. Penyambung yang dilengkapi MySQL Fabric adalah sama seperti pangkalan data MySQL yang berdiri sendiri secara umum, kecuali versi penyambung yang lebih baharu ialah penyambung sedar fabrik, yang mempunyai lebih banyak fungsi yang boleh mengendalikan ladang pelayan pangkalan data. Ini membolehkan mereka menyemak konfigurasi ladang pelayan dalam nod pengurusan MySQL Fabric menggunakan protokol XML-RPC apabila membuat sambungan pangkalan data, dan kemudian pertanyaan di bawah sambungan boleh dihantar ke pangkalan data yang sesuai mengikut arahan fabrik .
Dengan cara ini, proksi yang mungkin menyebabkan kesesakan prestasi dalam penyelesaian serpihan pangkalan data biasa diletakkan dalam penyambung, sekali gus menyelesaikan masalah ini. Teknologi yang kini disokong oleh MySQL Fabric termasuk java, python dan PHP, iaitu Connector/J, Connector/Python dan Connector/PHP semuanya sedar Fabric.
Ambil java sebagai contoh Pemacu JDBC mestilah Connector/J 5.1.30 atau lebih baru Program Java Fabric adalah serupa dengan program Java umum untuk menanyakan MySQL yang berdiri sendiri ia hanya mewujudkan Apabila objek sambungan pangkalan data digunakan, URL sambungan pangkalan data tidak menghala ke pangkalan data, tetapi ke nod pengurusan Fabric MySQL (IP dan port pelayan biasanya 32274).
Apabila jadual yang ditanya ialah jadual global (tanpa serpihan jadual) atau DDL (seperti mencipta jadual atau menukar struktur jadual), ''fabricServerGroup=" mesti ditambah semasa membuat objek sambungan., arahan SQL yang dikeluarkan melalui objek sambungan ini akan dihantar ke pangkalan data utama Kumpulan Global, dan kemudian pangkalan data akan disalin ke kumpulan ketersediaan tinggi yang lain (serpihan)
Jika SQL. Jadual yang akan dikendalikan oleh arahan ialah jadual serpihan Apabila membuat objek sambungan, anda mesti menambah parameter ''fabricShardTable=" kepada parameter. Kemudian arahan SQL yang dikeluarkan melalui objek sambungan ini akan. ditetapkan mengikut MySQL Fabric Prinsip jadual (shard) dihantar ke kumpulan ketersediaan tinggi setiap partition (shard).
Dengan cara ini, apabila program aplikasi mengeluarkan arahan SQL di bawah jadual shard ini, ia tidak perlu menentukan pangkalan data yang hendak dihantar dalam SQL ditentukan sepenuhnya oleh penyambung. Ia ditentukan oleh maklumat konfigurasi ladang pelayan (pangkalan data mana yang dimiliki oleh kumpulan serpihan, prinsip pemisahan setiap jadual serpihan, dll.) yang terdapat dalam Fabrik MySQL semasa membuat sambungan pangkalan data. Dan konfigurasi ini dicache pada bahagian aplikasi di mana Penyambung terletak selepas sambungan utama diwujudkan.
Dengan cara ini, tidak perlu berulang kali menanyakan nod pengurusan Fabric MySQL setiap kali arahan SQL dikeluarkan dan konfigurasi sharding yang bergantung pada sebelah aplikasi dihantar terus ke pangkalan data yang betul. Kecekapan aplikasi tidak akan dikurangkan dalam apa jua cara kerana pemisahan meja.
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci apakah fabrik mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!