Cara melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP

WBOY
Lepaskan: 2023-09-24 08:28:01
asal
1418 orang telah melayarinya

Cara melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP

Cara melaksanakan penerbitan dan langganan mesej yang diedarkan dalam perkhidmatan mikro PHP, contoh kod khusus diperlukan

Dengan populariti seni bina perkhidmatan mikro, penerbitan dan langganan mesej yang diedarkan telah menjadi kunci untuk membina komponen penting perkhidmatan mikro berskala dan ketersediaan tinggi. Dalam perkhidmatan mikro PHP, ciri ini boleh dicapai menggunakan baris gilir mesej. Artikel ini akan memperkenalkan cara menggunakan RabbitMQ, alat baris gilir mesej biasa, untuk melaksanakan penerbitan dan langganan mesej yang diedarkan.

Pertama, kita perlu memasang RabbitMQ dan mengkonfigurasi sambungannya. Berikut ialah contoh skrip PHP mudah yang menunjukkan cara menggunakan klien PHP RabbitMQ untuk menyambung dan mengkonfigurasi RabbitMQ:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use PhpAmqpLibConnectionAMQPStreamConnection;

$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
Salin selepas log masuk

Selepas sambungan diwujudkan, kami boleh membuat baris gilir mesej dan menetapkan sifat baris gilir, seperti ketekunan dan automatik tunggu pemadaman. Berikut ialah kod sampel:

<?php
$channel->queue_declare('hello', false, true, false, false);
Salin selepas log masuk

Seterusnya, kita perlu melaksanakan fungsi penerbitan mesej. Berikut ialah contoh kod untuk menghantar mesej:

<?php
$message = new PhpAmqpLibMessageAMQPMessage('Hello World!');
$channel->basic_publish($message, '', 'hello');
echo " [x] Sent 'Hello World!'
";
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah basic_publish untuk menghantar mesej ke baris gilir bernama 'hello'.

Kemudian, kita perlu melaksanakan fungsi langganan mesej. Berikut ialah contoh kod untuk menerima mesej:

<?php
$callback = function ($msg) {
    echo ' [x] Received ', $msg->body, "
";
};

$channel->basic_consume('hello', '', false, true, false, false, $callback);

while (count($channel->callbacks)) {
    $channel->wait();
}
Salin selepas log masuk

Dalam kod di atas, kami menentukan fungsi panggil balik $callback melalui kaedah basic_consume untuk memproses mesej yang diterima.

Setakat ini, kami telah melaksanakan sistem penerbitan dan langganan mesej mudah diedarkan. Sebarang perkhidmatan mikro boleh menghantar mesej ke baris gilir, dan berbilang pelanggan boleh menerima mesej pada masa yang sama.

Selain itu, RabbitMQ juga menyediakan ciri yang lebih canggih, seperti pengesahan mesej, ketekunan mesej, penghalaan mesej, dll., yang boleh dikonfigurasikan dan disesuaikan mengikut keperluan anda sendiri.

Untuk meringkaskan, artikel ini memperkenalkan kod contoh cara menggunakan RabbitMQ untuk melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP. Melalui penggunaan baris gilir mesej, kami boleh mencapai penyahgandingan dan skalabiliti antara perkhidmatan mikro dan memastikan penghantaran mesej yang boleh dipercayai.

Atas ialah kandungan terperinci Cara melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!