Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP

Bagaimana untuk melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP

WBOY
WBOYasal
2023-09-25 20:22:481198semak imbas

Bagaimana untuk melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP

Cara melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP

Dengan perkembangan pesat Internet, semakin banyak syarikat mula menggunakan seni bina perkhidmatan mikro untuk membina aplikasi berskala besar. Dalam seni bina perkhidmatan mikro, komunikasi yang teratur dan boleh dipercayai diperlukan antara perkhidmatan mikro. Baris gilir mesej adalah salah satu alat penting untuk mencapai komunikasi yang cekap antara perkhidmatan mikro Ia boleh menyelesaikan masalah perkhidmatan mikro dalam komunikasi tak segerak, pemotongan puncak dan pengisian lembah. Artikel ini akan menggunakan bahasa PHP sebagai contoh untuk memperkenalkan cara melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro, dan menyediakan beberapa contoh kod khusus.

1. Konsep asas dan klasifikasi baris gilir mesej

Baris gilir mesej ialah mekanisme komunikasi tak segerak yang biasa digunakan yang memisahkan penghantar mesej dan penerima mesej supaya kedua-duanya boleh berfungsi secara bebas. Pengirim mesej menghantar mesej ke baris gilir, dan penerima mesej memperoleh mesej dengan mendengar baris gilir.

Dalam perkhidmatan mikro, baris gilir mesej yang biasa digunakan mempunyai jenis berikut:

  1. Mod titik-ke-Titik (Titik-ke-Titik): pengirim mesej menghantar mesej ke baris gilir, dan hanya satu penerima mesej boleh menggunakan mesej itu . Selepas mesej diterima, ia dikeluarkan dari baris gilir.
  2. Mod Terbit/Langgan (Terbitkan/Langgan): Pengirim mesej menghantar mesej kepada topik (Topik), dan berbilang penerima mesej boleh melanggan topik ini dan mendapatkan mesej yang sepadan. Sebaik sahaja mesej dihantar ke topik, ia tidak dipadamkan serta-merta.

2. Gunakan RabbitMQ untuk melaksanakan fungsi baris gilir mesej

RabbitMQ ialah sistem baris gilir mesej sumber terbuka menggunakan protokol AMQP (Advanced Message Queue Protocol) Ia menyediakan fungsi yang kaya dan berskala yang baik. Seterusnya kita akan menggunakan RabbitMQ untuk melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP.

Pertama, kita perlu memasang RabbitMQ dan memulakan perkhidmatan. Arahan terperinci untuk pemasangan dan konfigurasi boleh diperolehi melalui dokumentasi rasmi.

Seterusnya, kita perlu menggunakan sambungan AMQP ke PHP, yang boleh dipasang melalui arahan berikut:

$ pecl install amqp

Kemudian dayakan sambungan dalam fail konfigurasi PHP, dan tambah konfigurasi berikut dalam php.ini:

extension=amqp.so

Seterusnya , kita untuk menulis kod sampel.

  1. Hantar mesej:
<?php

$exchange = 'test_exchange';
$queue = 'test_queue';
$message = 'Hello, RabbitMQ!';

$connection = new AMQPConnection(['host' => 'localhost', 'port' => 5672, 'login' => 'guest', 'password' => 'guest']);
$channel = $connection->channel();

$channel->queue_declare($queue, false, false, false, false);

$channel->basic_publish(new AMQPMessage($message), $exchange);

echo " [x] Sent '$message'
";

$channel->close();
$connection->close();
  1. Terima mesej:
<?php

$exchange = 'test_exchange';
$queue = 'test_queue';

$connection = new AMQPConnection(['host' => 'localhost', 'port' => 5672, 'login' => 'guest', 'password' => 'guest']);
$channel = $connection->channel();

$channel->queue_declare($queue, false, false, false, false);

$channel->basic_consume($queue, '', false, true, false, false, function ($msg) {
    echo " [x] Received: " . $msg->body . "
";
});

while (count($channel->callbacks)) {
    $channel->wait();
}

$channel->close();
$connection->close();

Dalam kod di atas, kami membuat baris gilir bernama test_exchange的交换机和一个名为test_queue Pengirim mesej menghantar mesej melalui suis, dan penerima mesej mendapatkan mesej itu barisan.

3. Ringkasan

Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan RabbitMQ untuk melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP. Baris gilir mesej boleh menyelesaikan masalah komunikasi antara perkhidmatan mikro dan meningkatkan kebolehskalaan dan kestabilan sistem. Selain RabbitMQ, terdapat sistem baris gilir mesej matang lain di pasaran, seperti Kafka, ActiveMQ, dll. Pembaca boleh memilih alat yang sesuai mengikut keperluan mereka sendiri.

Dalam aplikasi praktikal, isu seperti ketekalan mesej dan kebolehpercayaan mesej juga perlu dipertimbangkan. Pada masa yang sama, anda juga boleh menggabungkan rangka kerja atau komponen, seperti fungsi baris gilir Laravel, komponen Pengutus Symfony, dsb., untuk memudahkan proses pembangunan. Saya berharap pembaca dapat memahami konsep asas dan klasifikasi baris gilir mesej melalui artikel ini, serta cara melaksanakan fungsi baris gilir mesej dalam perkhidmatan mikro PHP, dan dapat menerapkannya secara fleksibel dalam projek sebenar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi baris gilir mesej 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