Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan perkhidmatan penyelarasan diedarkan Zookeeper sumber terbuka

PHP melaksanakan perkhidmatan penyelarasan diedarkan Zookeeper sumber terbuka

王林
王林asal
2023-06-18 23:30:011470semak imbas

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:

  1. Mula-mula anda perlu memasang klien bahasa Zookeeper C dan laksanakan arahan berikut pada baris arahan:
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
  1. Kompilasi klien bahasa Zookeeper C dan pasangkannya ke dalam direktori sistem:
./configure
make
make install
  1. Pasang sambungan php-zookeeper dan laksanakan arahan berikut pada baris arahan:
pecl install zookeeper
  1. Tambah konfigurasi berikut dalam php.ini:
extension=zookeeper.so
  1. Mulakan semula pelayan web untuk berkuat kuasa.

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?

  1. Melaksanakan kunci 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!
";
}
?>
  1. Melaksanakan pemantauan nod teragih

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!

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