Rumah >pembangunan bahagian belakang >tutorial php >Pustaka bas mesej dalam PHP8.0

Pustaka bas mesej dalam PHP8.0

王林
王林asal
2023-05-14 08:01:351329semak imbas

Dengan pembangunan aplikasi rangkaian yang berterusan, baris gilir mesej digunakan lebih dan lebih meluas Untuk aplikasi berkonkurensi tinggi dan berprestasi tinggi, menggunakan baris gilir mesej boleh meningkatkan kelajuan tindak balas dan kestabilan program dengan berkesan. Dalam PHP8.0, perpustakaan bas mesej baharu telah ditambah, yang meningkatkan kecekapan baris gilir mesej PHP Artikel ini akan memperkenalkan penggunaan perpustakaan ini secara terperinci.

1. Apakah yang dimaksudkan dengan bas mesej? Pengeluar menghantar mesej ke bas mesej dan pengguna menerima mesej daripada bas mesej. Sebagai perisian tengah, bas mesej memudahkan penghantaran mesej, mengurangkan gandingan sistem dan menjadikan pertukaran maklumat antara pelbagai modul lebih fleksibel.

2. Pustaka bas mesej dalam PHP8.0

PHP8.0 memperkenalkan perpustakaan bas mesej yang dipanggil "AMQP", yang menyokong pelbagai kaedah operasi baris gilir mesej, seperti menghantar dan menerima mesej, mencipta baris gilir dan penukar, dsb. Setelah perpustakaan ini dilancarkan, ia menjadi alat pilihan untuk pemprosesan baris gilir mesej berprestasi tinggi dalam ekosistem PHP.

3. Pasang pustaka sambungan AMQP

Memandangkan AMQP bukan perpustakaan standard PHP, anda perlu memasang pustaka sambungan yang sepadan sebelum menggunakan AMQP. Pustaka sambungan AMQP boleh dipasang melalui PECL Perintah pemasangan adalah seperti berikut:

pecl install amqp

Selepas pemasangan selesai, anda perlu menambah maklumat konfigurasi perpustakaan sambungan dalam fail php.ini:

extension=amqp

4. Penggunaan AMQP

Sambung ke bas mesej
  1. Pertama, anda perlu mewujudkan sambungan ke bas mesej. Dalam AMQP, gunakan AMQPConnection untuk menyambung ke bas mesej. Sambungan memerlukan penentuan nama hos, nama pengguna, kata laluan dan maklumat lain, dan pelbagai atribut boleh ditetapkan, seperti tamat masa, selang degupan jantung, dsb.
$connection = new AMQPConnection(array(
    'host' => 'localhost',
    'port' => '5672',
    'login' => 'guest',
    'password' => 'guest'
));

Buat saluran
  1. Selepas sambungan berjaya, anda boleh membuat saluran. Saluran ialah unit pengurusan asas dalam AMQP, yang boleh digunakan untuk menghantar dan menerima mesej, mengikat baris gilir dan penukar, dan operasi lain.
$channel = new AMQPChannel($connection);

Isytihar baris gilir
  1. Dalam AMQP, anda perlu mengisytiharkan baris gilir sebelum anda boleh menghantar mesej ke baris gilir ini.
$queue_name = "my_queue_demo";
$queue = new AMQPQueue($channel);
$queue->setName($queue_name);
$queue->declare(); // 声明队列

Hantar mesej
  1. Gunakan kaedah penerbitan baris gilir untuk menghantar mesej ke baris gilir:
$message = "Hello World!";
$queue->publish($message);

Terima mesej
  1. Gunakan kaedah dapatkan baris gilir untuk mendapatkan mesej daripada baris gilir:
$message = $queue->get();
if ($message) {
    echo "Received Message: " . $message->getBody() . "
";
    $queue->ack($message->getDeliveryTag());
}

Ikat baris gilir dan penukar
  1. Dalam AMQP, baris gilir perlu pengikatan Exchange menentukan mesej yang hendak diterima. Pengikatan boleh dilakukan menggunakan kaedah ikatan penukar dan kaedah ikatan baris gilir.
$exchange_name = "my_exchange_demo";
$exchange = new AMQPExchange($channel);
$exchange->setName($exchange_name);
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare(); // 声明交换器

// 绑定队列和交换器
$queue->bind($exchange_name, $queue_name);

Terbitkan mesej dengan Kunci Laluan
  1. Apabila menggunakan suis, anda boleh menerbitkan mesej dengan Kunci Laluan. Kunci penghalaan ialah kata kunci yang digunakan untuk menghalakan mesej ke baris gilir tertentu, yang dinyatakan semasa mengikat baris gilir dan pertukaran.
$routing_key = "my_routing_key";
$exchange->publish("Hello World!", $routing_key);

Menggunakan mesej dengan Kunci Penghalaan
  1. Gunakan kaedah penggunaan baris gilir untuk mula mengambil apabila terdapat mesej dalam baris gilir. Anda boleh menentukan fungsi panggil balik dalam kaedah penggunaan untuk memproses mesej yang diterima:
$callback = function(AMQPEnvelope $envelope, AMQPQueue $queue) {
    echo "Received Message: " . $envelope->getBody() . "
";
    $queue->ack($envelope->getDeliveryTag());
};

$queue->consume($callback);

Tutup sambungan
  1. Akhir sekali, selepas selesai menggunakan AMQP, anda perlu menutup sambungan dengan sambungan bas mesej.
$connection->disconnect();

5 Ringkasan

Artikel ini memperkenalkan penggunaan asas AMQP, perpustakaan bas mesej dalam PHP8.0, termasuk menyambung ke bas mesej, mencipta saluran, mengisytiharkan baris gilir, menghantar dan menerima mesej, dan mengikat Tentukan baris gilir dan penukar, dan cara menggunakan kekunci penghalaan untuk menggunakan mesej dengan Kekunci Penghalaan, dsb. Melalui penggunaan perpustakaan ini, kami boleh menggunakan baris gilir mesej dengan lebih mudah untuk melaksanakan aplikasi web berkonkurensi tinggi dan berprestasi tinggi.

Atas ialah kandungan terperinci Pustaka bas mesej dalam PHP8.0. 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