PHP melaksanakan perkhidmatan penyelarasan diedarkan Zookeeper sumber terbuka

王林
Lepaskan: 2023-06-19 06:16:01
asal
1487 orang telah melayarinya

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
Salin selepas log masuk
  1. Kompilasi klien bahasa Zookeeper C dan pasangkannya ke dalam direktori sistem:
./configure
make
make install
Salin selepas log masuk
  1. Pasang sambungan php-zookeeper dan laksanakan arahan berikut pada baris arahan:
pecl install zookeeper
Salin selepas log masuk
  1. Tambah konfigurasi berikut dalam php.ini:
extension=zookeeper.so
Salin selepas log masuk
  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");
?>
Salin selepas log masuk

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!
";
}
?>
Salin selepas log masuk
  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");
?>
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan