Rumah >pembangunan bahagian belakang >tutorial php >Cara melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP

Cara melaksanakan penerbitan dan langganan mesej teragih dalam perkhidmatan mikro PHP

WBOY
WBOYasal
2023-09-24 08:22:461481semak imbas

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();

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);

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!'
";

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();
}

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!

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