Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan replikasi tuan-hamba pangkalan data MongoDB dalam PHP

Bagaimana untuk melaksanakan replikasi tuan-hamba pangkalan data MongoDB dalam PHP

WBOY
WBOYasal
2023-05-16 12:40:361309semak imbas

Dalam aplikasi web moden, pemprosesan dan pengurusan data adalah tugas yang penting. Apabila aplikasi web menjadi semakin kompleks dan perlu mengendalikan sejumlah besar data, semakin banyak pangkalan data diperlukan untuk menyimpan dan memproses data ini.

MongoDB ialah pangkalan data NoSQL yang digunakan secara meluas dalam aplikasi web. Tidak seperti pangkalan data hubungan seperti MySQL, MongoDB menggunakan dokumen dan bukannya jadual untuk menyimpan data, yang menjadikan MongoDB sesuai untuk memproses sejumlah besar data. Selain itu, MongoDB menyediakan ketersediaan dan kebolehskalaan yang tinggi untuk berbilang aplikasi, yang diperlukan untuk aplikasi replikasi induk-hamba antara berbilang kejadian.

Artikel ini akan memperkenalkan cara menulis aplikasi replikasi tuan-hamba MongoDB menggunakan PHP.

Gambaran keseluruhan replikasi induk-hamba MongoDB

Replikasi induk-hamba MongoDB adalah untuk mencipta salinan antara berbilang tika MongoDB untuk memastikan aplikasi masih boleh berjalan seperti biasa sekiranya berlaku masalah kegagalan atau prestasi. Contoh induk menerima semua permintaan tulis dan kemudian mereplikasinya kepada setiap tika hamba, yang hanya menerima permintaan baca.

Kelebihan replikasi tuan-hamba

  • Ketersediaan tinggi: Aplikasi boleh bertukar secara automatik kepada tika hamba apabila tika tuan gagal.
  • Lewahan data: Jika satu kejadian gagal, kejadian lain boleh terus menyediakan perkhidmatan.
  • Skalabiliti: Lebih banyak contoh hamba boleh ditambah tanpa menjejaskan operasi biasa aplikasi.

Prinsip replikasi induk-hamba MongoDB

Dalam replikasi hamba induk MongoDB, tika induk dibuat dan semua permintaan tulis dihantar ke tika ini. Apabila operasi tulis berjaya, rekod operasi tulis mula-mula disimpan dalam log operasi contoh induk, dan kemudian operasi dihantar kepada setiap tika hamba supaya data boleh disalin ke kejadian lain. Selain itu, tika hamba juga boleh menyegerakkan data secara berkala daripada tika induk.

Dalam setiap contoh hamba MongoDB, data yang direplikasi boleh digunakan untuk permintaan baca dan replika boleh mengendalikan permintaan ini tanpa menanyakan secara langsung contoh induk. Selain itu, mekanisme pilihan raya boleh didayakan dalam contoh hamba untuk memilih contoh induk.

Konfigurasi replikasi master-slave MongoDB

Apabila menggunakan replikasi master-slave MongoDB, anda perlu melakukan beberapa kerja penyediaan, seperti mencipta instance master dan instance slave, dan menyediakan sambungan antara mereka. Berikut ialah konfigurasi asas replikasi hamba induk MongoDB:

  1. Mencipta tika induk

Untuk mencipta tika MongoDB, anda boleh menggunakan arahan mongod. Apabila mencipta contoh induk, anda boleh menggunakan arahan berikut:

mongod --replSet rs0

Arahan ini akan mencipta set replika bernama "rs0", yang mengandungi contoh induk dan Dua hamba contoh.

  1. Buat tika hamba

Untuk mencipta tika hamba, anda perlu memulakan tika mongod seperti biasa:

mongod --port 27027

Gunakan Perintah ini mencipta tika MongoDB bernama 28027 dan menandakannya sebagai tika hamba.

  1. Mengkonfigurasi contoh induk

Untuk mengkonfigurasi tika induk, anda boleh menggunakan alat baris arahan mongo dan masukkan arahan berikut dalam baris arahan:

rs.initiate ()

Ini akan memulakan set replika yang akan menjadi contoh utama.

  1. Mengkonfigurasi tika hamba

Apabila mengkonfigurasi tika hamba, anda perlu menentukan alamat IP dan port tika MongoDB untuk menyambung kepada tika induk. Berikut ialah contoh sintaks untuk mengkonfigurasi tika hamba:

rs.add("192.168.1.2:28027")

Ini akan menambah tika MongoDB bernama 28027 kepada induk sebagai sebahagian daripada set replika Dalam contoh.

Pelaksanaan replikasi master-slave MongoDB

Untuk melaksanakan replikasi master-slave MongoDB dalam PHP, anda perlu menggunakan pemacu PHP MongoDB dan sambungan PHP MongoDB. Berikut ialah langkah untuk melaksanakan replikasi hamba induk MongoDB:

  1. Sambung ke pangkalan data MongoDB

Untuk menyambung ke pangkalan data MongoDB dalam PHP, anda perlu menggunakan PHP MongoDB sambungan. Berikut ialah contoh kod untuk menyambung ke pangkalan data MongoDB:

$manager = new MongoDBDriverManager("mongodb://localhost:27017");
?>

Gunakan coretan kod ini untuk memulakan pemacu PHP MongoDB dan gunakan "mongodb://localhost:27017" sebagai hos dan port untuk aplikasi pelayan.

  1. Dapatkan status tuan-hamba

Untuk mendapatkan status replikasi tuan-hamba MongoDB, anda perlu menggunakan kaedah yang disediakan oleh sambungan PHP MongoDB. Berikut ialah contoh kod untuk mendapatkan status tuan-hamba:

$command = new MongoDBDriverCommand(['replSetGetStatus' => 1]);
$cursor = $manager-> ;executeCommand('admin', $command);
$status = $cursor->toArray()[0];
var_dump($status);
?>

Gunakan coretan kod ini untuk menyemak status hamba tuan semasa pangkalan data MongoDB. Jika semua tika hamba bagi set replika dikemas kini, maka semua tika hamba harus mempunyai keadaan replika yang sama dan keadaan tika induk hendaklah dikemas kini sebelum semua tika hamba.

  1. Tetapkan keutamaan baca

Untuk menetapkan keutamaan baca replikasi induk-hamba MongoDB dalam PHP, anda boleh menggunakan kaedah yang disediakan oleh sambungan PHP MongoDB. Contoh menetapkan keutamaan baca dalam kod adalah seperti berikut:

$readPreference = new MongoDBDriverReadPreference(MongoDBDriverReadPreference::RP_NEAREST);
$options = [
'readPreference' => ; $readPreference
];
$query = MongoDBDriverQuery([], $options);
$cursor = $manager->executeQuery('mydb.mycollection', $query);
?>

Gunakan coretan kod ini untuk menetapkan keutamaan baca dalam replikasi hamba induk MongoDB. Dalam contoh ini, pilihan keutamaan baca baca baru-baru ini ditetapkan menggunakan MongoDBDriverReadPreference::RP_NEAREST.

  1. Operasi replikasi induk-hamba

Untuk melengkapkan operasi replikasi induk-hamba MongoDB dalam PHP, anda perlu menggunakan kaedah yang disediakan oleh sambungan PHP MongoDB. Berikut ialah contoh kod untuk menggunakan operasi sisipan dalam replikasi hamba induk MongoDB:

$bulk = new MongoDBDriverBulkWrite;
$bulk->insert(['_id' => ; 1, 'name' => 'John Doe']);
$manager->executeBulkWrite('mydb.mycollection', $bulk);
?>

Gunakan coretan Kod ini yang boleh dimasukkan sekali dalam tika induk MongoDB dan disegerakkan menggunakan tika hamba.

Kesimpulan

Replikasi hamba induk MongoDB menyediakan satu siri ciri penting seperti kebolehskalaan, toleransi kesalahan dan daya tahan, dan merupakan bahagian penting dalam aplikasi web moden. Menggunakan sambungan PHP MongoDB dan pemacu PHP MongoDB dalam PHP, kami boleh melaksanakan replikasi hamba induk MongoDB dengan mudah, dan kaedah pelaksanaan ini sangat dipercayai dan mudah diurus. Secara keseluruhannya, adalah sangat penting untuk menulis aplikasi replikasi induk-hamba MongoDB dalam PHP untuk memastikan kelancaran aplikasi dan meningkatkan ketersediaannya.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan replikasi tuan-hamba pangkalan data MongoDB dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn