Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan RabbitMQ untuk melaksanakan penghantaran mesej dalam pembangunan PHP

Cara menggunakan RabbitMQ untuk melaksanakan penghantaran mesej dalam pembangunan PHP

王林
Lepaskan: 2023-06-27 10:46:01
asal
1275 orang telah melayarinya

RabbitMQ ialah perisian baris gilir mesej yang boleh digunakan untuk pemesejan antara aplikasi. Dalam pembangunan PHP, RabbitMQ boleh digunakan untuk melaksanakan tugas pemprosesan tak segerak, melaksanakan sistem teragih, dsb. Artikel ini akan memperkenalkan cara menggunakan RabbitMQ untuk melaksanakan penghantaran mesej dalam pembangunan PHP.

1. Pasang perkhidmatan RabbitMQ

RabbitMQ ialah perisian sumber terbuka yang boleh dimuat turun dan dipasang dari laman web rasminya (https://www.rabbitmq.com/download.html). Selepas pemasangan selesai, anda perlu memulakan perkhidmatan RabbitMQ Anda boleh memasukkan arahan berikut pada baris arahan:

sudo service rabbitmq-server start
Salin selepas log masuk

2. Pasang sambungan Amqp

Pelanggan PHP RabbitMQ ialah sambungan AMQP dan perlu dipasang. menggunakan PECL. Anda boleh memasukkan arahan berikut pada baris arahan:

sudo pecl install amqp
Salin selepas log masuk

Selepas pemasangan selesai, anda perlu menambah kandungan berikut pada fail php.ini:

extension=amqp.so
Salin selepas log masuk

3. Buat sambungan

Sebelum menggunakan RabbitMQ, anda perlu untuk membuat sambungan ke pelayannya. Sambungan boleh dibuat menggunakan kelas AMQPConnection. Berikut ialah contoh kod untuk membuat sambungan:

$connection = new AMQPConnection(
    array(
        'host' => 'localhost',
        'port' => 5672,
        'vhost' => '/',
        'login' => 'guest',
        'password' => 'guest'
    )
);

$connection->connect();
Salin selepas log masuk

IV Buat saluran

Selepas sambungan berjaya dibuat, anda perlu mencipta saluran. Dalam AMQP, saluran ialah saluran ke pelayan di mana berbilang arahan boleh dilaksanakan, dengan itu pemultipleksan pada sambungan yang sama. Berikut ialah contoh kod untuk mencipta saluran:

$channel = new AMQPChannel($connection);
Salin selepas log masuk

5. Buat baris gilir

Dalam RabbitMQ, mesej disimpan dalam baris gilir dan pengguna perlu membaca mesej daripada baris gilir. Sebelum menggunakan RabbitMQ, anda perlu membuat baris gilir. Berikut ialah contoh kod untuk membuat baris gilir:

$queue = new AMQPQueue($channel);
$queue->setName('my-queue');
$queue->setFlags(AMQP_DURABLE);
$queue->declareQueue();
Salin selepas log masuk

6. Terbitkan mesej

Selepas membuat baris gilir, anda boleh menerbitkan mesej ke baris gilir supaya pengguna boleh membaca dari baris gilir. Berikut ialah contoh kod untuk menerbitkan mesej:

$exchange = new AMQPExchange($channel);
$exchange->setName('my-exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();

$exchange->publish('hello, world', 'my-routing-key');
Salin selepas log masuk

7. Gunakan mesej

Selepas membuat baris gilir dan menerbitkan mesej, anda boleh mula menggunakan mesej. Dalam RabbitMQ, pengguna ditetapkan untuk menunggu secara menyekat untuk mesej dalam baris gilir sehingga terdapat mesej untuk dibaca oleh pengguna. Berikut ialah contoh kod untuk menggunakan mesej:

$queue->consume(function ($message) {
    $payload = $message->getBody();
    echo "Received message: $payload
";
    $message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
});
Salin selepas log masuk

Menggunakan kaedah consume() AMQPQueue, anda boleh menunggu secara menyekat untuk mesej dalam baris gilir Apabila mesej tiba, ia dihantar ke fungsi panggil balik. Parameter kedua kaedah AMQPQueue::consume() ialah no_ack, yang merupakan jenis Boolean yang menunjukkan sama ada mesej itu harus diakui serta-merta selepas membacanya.

8. Ringkasan

Artikel ini memperkenalkan cara menggunakan RabbitMQ untuk melaksanakan penghantaran mesej dalam proses pembangunan PHP. Dengan memasang RabbitMQ, sambungan Amqp dan langkah-langkah untuk membuat sambungan, saluran, baris gilir, menerbitkan mesej dan menggunakan mesej, kami boleh dengan mudah melaksanakan pemprosesan tugas tak segerak, sistem teragih dan senario perniagaan lain yang memerlukan perkongsian mesej antara berbilang aplikasi.

Atas ialah kandungan terperinci Cara menggunakan RabbitMQ untuk melaksanakan penghantaran mesej dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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