Rumah  >  Artikel  >  pangkalan data  >  Apakah prinsip pemisahan baca dan tulis MySQL?

Apakah prinsip pemisahan baca dan tulis MySQL?

PHPz
PHPzke hadapan
2023-05-29 17:52:211610semak imbas

1. Konsep pengasingan baca-tulis

Pengasingan baca-tulis dilaksanakan berdasarkan replikasi tuan-hamba. Dalam persekitaran aplikasi sebenar, mesti terdapat banyak operasi baca Sama seperti apabila kita membeli sesuatu pada platform e-dagang, kita mungkin hanya membeli satu atau dua selepas melihat 100 item. Oleh itu, sentiasa terdapat lebih banyak operasi baca daripada operasi kemas kini tulis. Oleh itu, konfigurasi pemisahan baca-tulis kami berdasarkan replikasi master-slave bermakna pangkalan data induk dikhususkan untuk mengubah suai data Apabila menulis, ia ditulis secara eksklusif pada pangkalan data induk replikasi melalui binlog, maka permintaan pertanyaan pelanggan lain akhirnya akan dipetakan ke perpustakaan hamba, dan kami mempunyai satu perpustakaan utama dengan dua atau tiga perpustakaan hamba Pustaka utama digunakan khas untuk mengemas kini data (operasi tulis). dan perpustakaan hamba Perpustakaan digunakan khas untuk operasi membaca Dengan cara ini, tekanan membaca dan menulis boleh diagihkan dengan baik. Ia tidak perlu tertumpu pada perpustakaan utama Perkhidmatan Selain itu, ia mempunyai kapasiti ketersediaan yang tinggi Jika berlaku bencana, apabila pangkalan data utama gagal, pangkalan data hamba yang ditentukan boleh diubah menjadi pangkalan data induk.

Apakah prinsip pemisahan baca dan tulis MySQL?

Pelanggan MySQL menggunakan API yang disediakan oleh mysql untuk berkomunikasi dengan Pelayan MySQL dan mengakses pangkalan data Pelayan MySQL menggunakan protokol data berasaskan TCP tersuai mysql (dirujuk sebagai protokol mysql).

Jika hanya terdapat satu pelayan (persekitaran yang berdiri sendiri), semua penambahan data, pemadaman, pengubahsuaian dan pertanyaan dilakukan pada satu pelayan Memandangkan perkhidmatan kami digunakan oleh semakin ramai orang, trafik secara beransur-ansur meningkat. Keupayaan concurrency perlu dipertingkatkan secara beransur-ansur, jadi jika kami mendapati prestasi pangkalan data telah mencapai kesesakan, kami boleh melakukan operasi pemisahan baca-tulis untuk meningkatkan perkhidmatan latar belakang.

Apakah prinsip pemisahan baca dan tulis MySQL?

Pelayan utama MySQL dalam gambar dikhaskan untuk operasi menulis Terdapat 2 pelayan hamba MySQL yang disambungkan di bawah untuk melaksanakan operasi baca dimajukan kepada B dan C. dan permintaan tulis dimajukan kepada A.

Jika kami menulis kod terus pada klien, operasi tulis seperti sisipan dan kemas kini dilakukan pada A, dan operasi baca seperti tunjukkan dan pilih dilakukan pada B dan C. Ini bersamaan dengan kod dan induk -persekitaran hamba. Ini membawa kepada kestabilan kod yang lemah, kerana ia sangat berkaitan dengan persekitaran Apabila kita menulis kod, kita mesti tahu mesin mana yang bertanggungjawab untuk operasi menulis, dan mesin mana yang bertanggungjawab untuk operasi membaca kod memilih. Pada masa ini, jika mesin menutup telefon, kod tidak akan mengetahuinya dan masih akan memajukan permintaan dengan cara asal, dan masalah komunikasi akan berlaku, pastinya tidak sesuai untuk melaksanakan pengasingan membaca dan menulis dalam kod . Jadi dalam penyelesaian sebenar, pemisahan membaca dan menulis memerlukan bergantung pada perisian tengah pangkalan data .

2. Memperkenalkan middleware MyCat

Malah, pemisahan membaca dan menulis, dan sub-pangkalan data dan sub-pergantungan jadual memerlukan perisian tengah pangkalan data (mycat), yang merupakan peranan pelayan proksi.

Apakah prinsip pemisahan baca dan tulis MySQL?

Pelanggan sebenarnya tidak boleh memberitahu sama ada ia disambungkan kepada MyCat atau MySQL, kerana komunikasi mengikut protokol komunikasi MySQL sebelum ini, cara berkomunikasi dengannya kini MyCat berkomunikasi, jadi tidak perlu membezakan.

Mengkonfigurasikan pemisahan baca-tulis pada MyCat, kami tidak perlu membuat sebarang perubahan pada kod pada klien Kod tidak perlu membezakan permintaan yang mana untuk dibaca dan yang mana permintaan adalah untuk menulis, kod itu mengakses terus Yang satu ialah MyCat, yang menghuraikan permintaan dan memajukannya kepada pelayan yang bertanggungjawab untuk operasi yang sepadan mengikut sifat baca dan tulis SQL untuk mencapai pemisahan baca dan tulis.

Anda perlu mengkonfigurasi maklumat pelayan induk dan pelayan hamba pada MyCat Terdapat tiga situasi: Satu tuan dan seorang hamba, satu tuan dan berbilang hamba, dan berbilang. tuan dan berbilang hamba

Senario satu tuan dan berbilang hamba: Apabila perpustakaan penulisan (tuan) gagal, MyCat juga boleh menukar perpustakaan hamba (hamba) terus kepada perpustakaan penulisan (tuan), yang adalah bersamaan dengan kembali ke perpustakaan penulisan (master Untuk pemprosesan mesin, kerana tiada konfigurasi replikasi induk-hamba antara perpustakaan hamba dan perpustakaan hamba, kita juga perlu mengkonfigurasi replikasi induk-hamba antara perpustakaan hamba yang menjadi. perpustakaan penulisan dan perpustakaan hamba lain.

Berbilang tuan dan berbilang hamba:

Apakah prinsip pemisahan baca dan tulis MySQL?

Seperti yang anda boleh lihat dalam gambar, pelayan MyCat mempunyai dua set persekitaran. Jika salah satu daripadanya Pangkalan data utama tidak berfungsi (pangkalan data hamba yang sepadan juga tidak tersedia Pada masa ini, MyCat akan bertukar secara automatik ke persekitaran lain, kerana M1 dan M2 juga dikonfigurasikan sebagai tuan dan hamba bersama, jadi M2 boleh menyegerakkan data M1 dan menyediakan perkhidmatan yang sama persis dengan persekitaran M1, jadi ketersediaan tinggi dan keupayaan pemulihan bencana adalah sangat baik.

3. Port perkhidmatan dan port pengurusan MyCat

Port perkhidmatan MySQL ialah 3306, Port perkhidmatan MyCat ialah 8066 (port ini juga boleh ditukar), iaitu MySQL The Pelanggan menyambung ke port 8066. Antara muka yang anda lihat semasa log masuk ke port 8066 adalah sama seperti log masuk ke port 3306 Pelayan MySQL. MyCat juga mempunyai port pengurusan 9066 Log masuk ke port pengurusan ini untuk melihat semua status kerja MyCat dan sambungan ke pelayan bahagian belakang, serta status sambungan ke sumber data. .

Atas ialah kandungan terperinci Apakah prinsip pemisahan baca dan tulis MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam