Rumah > Artikel > pembangunan bahagian belakang > 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.
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.
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.
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!