Dengan pembangunan berterusan Internet, sistem yang diedarkan telah menjadi sebahagian daripada seni bina perisian moden yang tidak boleh diabaikan. Dalam sistem teragih, pelbagai perkhidmatan dan proses perlu diselaraskan dan disegerakkan untuk memastikan kestabilan dan konsistensi sistem. Untuk menyelesaikan masalah ini, perkhidmatan penyelarasan yang diedarkan telah dilahirkan. Salah satu perkhidmatan penyelarasan teragih yang terkenal ialah Zookeeper. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan perkhidmatan penyelarasan diedarkan Zookeeper sumber terbuka.
1. Apakah itu Zookeeper?
Zookeeper ialah perkhidmatan penyelarasan teragih, yang digunakan terutamanya untuk menyelesaikan pelbagai masalah penyelarasan dalam sistem teragih. Ia menyediakan perkhidmatan penamaan yang diedarkan, sangat tersedia berdasarkan struktur pokok, dan juga menyediakan set lengkap API untuk menyelesaikan penyelarasan teragih, konfigurasi dikongsi, perkhidmatan penamaan, pengurusan kluster, kunci teragih, dsb. Satu siri soalan.
Teras Zookeeper ialah sistem storan data teragih, yang boleh menyokong kerja kolaboratif berbilang nod dan memilih nod pemimpin melalui mekanisme pilihan raya dalaman. Zookeeper juga menyediakan mekanisme mendengar yang boleh menghantar pemberitahuan secara automatik kepada klien apabila data nod berubah.
2. Bagaimana hendak menyambungkan Zookeeper dengan PHP?
Bahasa PHP itu sendiri tidak menyokong Zookeeper, tetapi Zookeeper boleh digunakan dengan mudah dalam PHP melalui php-zookeeper pemalam pihak ketiga.
Memasang php-zookeeper memerlukan alat pengurusan sambungan PHP PECL. Sebelum pemasangan, sila pastikan PECL telah dipasang dengan betul, dan sambungan SOCKETS dan sambungan JSON telah didayakan.
Langkah pemasangan adalah seperti berikut:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz tar -zxf zookeeper-3.4.6.tar.gz cd zookeeper-3.4.6/src/c
./configure make make install
pecl install zookeeper
extension=zookeeper.so
Anda kini boleh menyambung dan menggunakan Zookeeper melalui kod PHP.
Contoh kod:
<?php $zk = new Zookeeper("localhost:2181"); $zk->create("/test", "Hello Zookeeper!"); $value = $zk->get("/test"); echo "Node value: " . $value['value'] . " "; $zk->delete("/test"); ?>
3. Bagaimanakah PHP menggunakan Zookeeper untuk mencapai koordinasi teragih?
Zookeeper menyediakan pelaksanaan kunci teragih dan mengawal jujukan akses proses teragih dengan memohon nod kunci.
Contoh kod:
<?php $zk = new Zookeeper("localhost:2181"); $lock_path = "/test/lock"; $lock = $zk->create($lock_path . "/lock-", null, array( array('perms' => Zookeeper::PERM_ALL, 'scheme' => 'world', 'id' => 'anyone') ), Zookeeper::EPHEMERAL | Zookeeper::SEQUENCE); while (!$zk->exists($lock, null)) {} $children = $zk->getChildren($lock_path); sort($children); $lowest_node = reset($children); if ($lock == $lock_path . '/' . $lowest_node) { echo "I got the lock! "; // do something $zk->delete($lock); } else { echo "I failed getting the lock! "; } ?>
Zookeeper menyediakan fungsi pemantauan nod, yang boleh mendapatkan perubahan data nod dengan memberitahu nod pemantauan.
Contoh kod:
<?php $zk = new Zookeeper("localhost:2181"); function node_change_callback($event_type, $state, $path) { global $zk; $value = $zk->get($path, node_change_callback); echo "Node value changed to: " . $value['value'] . " "; } $zk->create("/test", "Hello, world"); $value = $zk->get("/test", node_change_callback); sleep(10); $zk->set("/test", "Hello, Zookeeper!"); sleep(10); $zk->delete("/test"); ?>
4. Ringkasan
Zookeeper ialah perkhidmatan penyelarasan teragih yang berkuasa yang boleh digunakan untuk menyelesaikan pelbagai masalah koordinasi dalam sistem teragih. Melalui php-zookeeper pemalam pihak ketiga, kami boleh menggunakan Zookeeper dalam PHP dengan mudah. Artikel ini memperkenalkan cara menggunakan PHP untuk melaksanakan kunci teragih dan fungsi pemantauan nod. Dalam projek sebenar, kami boleh menggabungkan Zookeeper untuk mencapai sistem pengedaran yang lebih cekap dan boleh dipercayai.
Atas ialah kandungan terperinci PHP melaksanakan perkhidmatan penyelarasan diedarkan Zookeeper sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!