Cara menggunakan perkhidmatan mikro PHP untuk melaksanakan baris gilir dan komunikasi mesej yang diedarkan
Pengenalan:
Dengan perkembangan pesat aplikasi Internet, keperluan untuk sistem pengedaran berskala besar menjadi semakin mendesak. Sistem teragih boleh meningkatkan ketersediaan sistem, kebolehskalaan dan prestasi. Salah satu komponen penting ialah baris gilir mesej dan mekanisme komunikasi. Artikel ini akan memperkenalkan cara menggunakan seni bina perkhidmatan mikro PHP untuk melaksanakan baris gilir dan komunikasi mesej yang diedarkan, dan menyediakan contoh kod khusus.
1. Apakah seni bina perkhidmatan mikro ialah corak reka bentuk seni bina yang membahagikan aplikasi kepada perkhidmatan kecil yang dijalankan secara bebas. Setiap perkhidmatan boleh digunakan, dikembangkan dan diurus secara bebas, dan perkhidmatan berkomunikasi melalui mekanisme komunikasi yang ringan. Seni bina perkhidmatan mikro boleh memberikan kebolehselenggaraan, skalabiliti dan kebolehpercayaan yang lebih baik.
Baris gilir mesej teragih ialah mekanisme yang digunakan untuk komunikasi tak segerak dalam sistem teragih. Ia membolehkan penyahgandingan, daya tahan dan kebolehpercayaan. Mesej dalam baris gilir mesej boleh digunakan oleh perkhidmatan yang berbeza, membolehkan perkhidmatan yang berbeza berfungsi bersama secara longgar. Baris gilir mesej edaran yang biasa digunakan termasuk Kafka, RabbitMQ, dsb.
// Producer
$channel = $connection->channel();
$channel-> ;queue_declare(queue_declare 'hello', false, false, false, false);
$msg = new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', 'hello'); " [x] Dihantar 'Hello World!'";
$connection->close();
$connection = new AMQPStreamConnection( 'localhost', 5672, 'tetamu', 'tetamu');
$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false
echo "); [*] Menunggu mesej. Untuk keluar tekan CTRL+C
echo ' [x] Received ', $msg->body, "
" ;
$channel->basic_consume('hello', '', false, true, false, false, $callback);
sementara ($channel->is_consuming()) {
}
?>
Menjalankan pengeluar dan pengguna
Jalankan pengeluar dan kod pengguna dalam baris arahan:
Pengeluar akan beratur menghantar mesej kepada pengeluar dan pengguna akan menerima dan mencetak mesej tersebut. Anda boleh menguji mekanisme pengedaran mesej dengan menjalankan pengguna beberapa kali.
3. Komunikasi perkhidmatan mikro
Dalam seni bina perkhidmatan mikro, perkhidmatan perlu berkomunikasi antara satu sama lain untuk bekerjasama. Kaedah komunikasi perkhidmatan mikro yang biasa digunakan termasuk HTTP, RPC, baris gilir mesej, dsb.Berkomunikasi menggunakan HTTP
HTTP ialah protokol komunikasi perkhidmatan mikro yang biasa digunakan yang boleh berkomunikasi melalui permintaan dan respons HTTP. Pustaka HTTP PHP biasa termasuk Guzzle, Symfony HTTP Client, dsb. Kod sampel adalah seperti berikut:
$client = new Client();
request$response = $client-> ('GET ', 'https://example.com');
echo $response->getBody();
?>Menggunakan komunikasi RPC
RPC (Panggilan Prosedur Jauh) ialah kaedah untuk diedarkan protokol komunikasi sistem. Ia membolehkan perkhidmatan yang berbeza untuk berkomunikasi dengan fungsi panggilan. Pustaka PHP RPC biasa termasuk gRPC, Thrift, dsb. Kod sampel adalah seperti berikut:
use HelloworldHelloResponse;
use HelloworldGreeterClient;
0GreeterClient;
=
GreeterClient baru , [
'credentials' => GrpcChannelCredentials::createInsecure(),
]);
$request = new HelloRequest();
$request->setName('World');
$response = $client->SayHello($request);
echo $response- >getMessage();
?>Atas ialah kandungan terperinci Bagaimana untuk melaksanakan baris gilir mesej dan komunikasi yang diedarkan menggunakan perkhidmatan mikro PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!