Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro PHP

Bagaimana untuk melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro PHP

WBOY
WBOYasal
2023-09-25 13:12:23960semak imbas

Bagaimana untuk melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro PHP

Cara melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro PHP

Dengan populariti seni bina perkhidmatan mikro, semakin banyak Perusahaan mula berpecah aplikasi monolitik tradisional ke dalam pelbagai perkhidmatan kecil bebas. Dalam seni bina perkhidmatan mikro, komunikasi antara perkhidmatan menjadi kritikal. Penemuan perkhidmatan dan pendaftaran diperlukan antara perkhidmatan untuk memudahkan panggilan dan pengurusan antara perkhidmatan. Artikel ini akan memperkenalkan cara melaksanakan penemuan dan pendaftaran perkhidmatan teragih dalam perkhidmatan mikro PHP dan menyediakan contoh kod khusus.

1. Apakah penemuan dan pendaftaran perkhidmatan teragih

Penemuan dan pendaftaran perkhidmatan teragih merujuk kepada mekanisme untuk menemui dan mendaftar perkhidmatan secara automatik dalam seni bina perkhidmatan mikro. Dalam aplikasi monolitik tradisional, kami boleh menguruskan perkhidmatan yang berbeza melalui fail konfigurasi atau platform pengurusan berpusat. Walau bagaimanapun, dalam seni bina perkhidmatan mikro, disebabkan oleh bilangan perkhidmatan yang besar, pengurusan manual telah menjadi tidak dapat dilaksanakan. Oleh itu, melalui penemuan perkhidmatan dan mekanisme pendaftaran, kami boleh membenarkan perkhidmatan yang berbeza untuk mendaftar secara automatik ke pusat pendaftaran apabila bermula, dan secara automatik menemui dan mendapatkan alamat perkhidmatan apabila perkhidmatan lain perlu dipanggil.

2. Gunakan ETCD untuk melaksanakan penemuan dan pendaftaran perkhidmatan teragih

ETCD ialah sistem storan nilai kunci teragih yang sangat tersedia Ia merupakan projek sumber terbuka CoreOS dan telah menjadi Bahagian belakang storan lalai untuk Kubernetes. Dalam perkhidmatan mikro PHP, kami boleh menggunakan ETCD sebagai pusat pendaftaran untuk merealisasikan penemuan perkhidmatan dan pendaftaran.

  1. Install ETCD

Memasang ETCD pada bahagian pelayan adalah sangat mudah dan boleh dipasang melalui fail binari yang disediakan oleh laman web rasmi. Selepas pemasangan selesai, anda boleh memulakan perkhidmatan ETCD melalui antara muka baris arahan.

  1. Gunakan ETCD untuk pendaftaran perkhidmatan

Dalam perkhidmatan mikro PHP, kami boleh menggunakan API RESTful ETCD untuk pendaftaran perkhidmatan. Berikut ialah contoh kod:

<?php

function registerService($serviceName, $serviceHost, $servicePort)
{
    $parameters = [
        'host' => $serviceHost,
        'port' => $servicePort,
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://etcd-server:2379/v2/keys/services/$serviceName");
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameters));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    
    curl_exec($ch);
    
    curl_close($ch);
}

registerService('user-service', '127.0.0.1', 8000);
registerService('order-service', '127.0.0.1', 8001);

Kod di atas akan menghantar permintaan HTTP POST ke antara muka API perkhidmatan ETCD melalui CURL, dan mendaftarkan alamat perkhidmatan dan port ke ETCD.

  1. Gunakan ETCD untuk penemuan perkhidmatan

Apabila kami perlu menghubungi perkhidmatan lain, kami boleh menggunakan ETCD untuk penemuan perkhidmatan. Berikut ialah contoh kod:

<?php

function getService($serviceName)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://etcd-server:2379/v2/keys/services/$serviceName");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    
    curl_close($ch);
    
    $data = json_decode($response, true);
    
    return $data['node']['value'];
}

$userServiceUrl = getService('user-service');
$orderServiceUrl = getService('order-service');

echo "User Service URL: $userServiceUrl
";
echo "Order Service URL: $orderServiceUrl
";

Kod di atas akan menghantar permintaan HTTP GET ke antara muka API perkhidmatan ETCD melalui CURL untuk mendapatkan alamat dan port perkhidmatan. Kemudian kita boleh menghubungi perkhidmatan lain melalui URL yang diperolehi.

Ringkasan:

Dengan menggunakan ETCD sebagai pusat pendaftaran, kami boleh melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro PHP. Menggunakan API RESTful ETCD, kami boleh mendaftarkan perkhidmatan ke dalam ETCD melalui permintaan HTTP, dan juga mendapatkan alamat dan port perkhidmatan lain daripada ETCD melalui permintaan HTTP. Melalui mekanisme sedemikian, kami boleh mengurus dan memanggil perkhidmatan mikro dengan lebih baik dan mencapai seni bina perkhidmatan mikro yang lebih fleksibel dan berskala.

Contoh kod di atas adalah untuk rujukan sahaja, dan mungkin perlu dilaraskan dan ditambah baik mengikut keperluan sebenar dalam projek sebenar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penemuan perkhidmatan teragih dan pendaftaran dalam perkhidmatan mikro 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