Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencapai pemesejan yang boleh dipercayai menggunakan PHP dan RabbitMQ

Bagaimana untuk mencapai pemesejan yang boleh dipercayai menggunakan PHP dan RabbitMQ

WBOY
WBOYasal
2023-07-17 23:13:381200semak imbas

Cara mencapai pemesejan yang boleh dipercayai menggunakan PHP dan RabbitMQ

Ikhtisar
Dalam pembangunan aplikasi moden, pemesejan ialah kaedah komunikasi yang biasa. RabbitMQ ialah perisian baris gilir mesej yang biasa digunakan yang boleh membantu kami mencapai penghantaran mesej yang boleh dipercayai. Artikel ini akan memperkenalkan cara menggunakan PHP dan RabbitMQ untuk mencapai pemesejan yang boleh dipercayai, dan menerangkannya secara terperinci dengan contoh kod.

  1. Pasang RabbitMQ
    Pertama, kita perlu memasang RabbitMQ. Bergantung pada sistem pengendalian anda, anda boleh memuat turun pakej pemasangan RabbitMQ yang sepadan dan ikuti dokumentasi rasmi untuk langkah pemasangan. Selepas pemasangan selesai, pastikan perkhidmatan RabbitMQ dimulakan.
  2. Pasang sambungan AMQP PHP
    PHP perlu menggunakan sambungan AMQP untuk menyambung ke RabbitMQ, jadi kami perlu memasang sambungan AMQP dalam PHP. Anda boleh memasang sambungan AMQP melalui arahan berikut:

    # 使用pecl命令安装
    $ pecl install amqp
    
    # 使用composer安装
    $ composer require php-amqplib/php-amqplib
  3. Sambung ke RabbitMQ
    Untuk menyambung ke RabbitMQ dalam PHP, anda perlu menentukan parameter sambungan yang berkaitan, termasuk hos, port, nama pengguna dan kata laluan, dsb. Anda boleh menggunakan kod berikut untuk mewujudkan sambungan dengan RabbitMQ:

    require_once __DIR__ . '/vendor/autoload.php';
    
    $connection = new PhpAmqpLibConnectionAMQPConnection(
     'localhost', // RabbitMQ服务器主机名
     5672, // RabbitMQ服务器端口
     'guest', // RabbitMQ用户名
     'guest' // RabbitMQ密码
    );
    
    $channel = $connection->channel();
  4. Buat baris gilir mesej
    Menggunakan RabbitMQ, anda perlu membuat baris gilir terlebih dahulu untuk menyimpan mesej yang akan dihantar. Barisan gilir boleh dibuat menggunakan kod berikut:

    $queueName = 'my_queue'; // 队列名称
    $channel->queue_declare($queueName, false, true, false, false);
  5. Menghantar mesej
    Menggunakan nama baris gilir, kita boleh menghantar mesej ke baris gilir melalui kod berikut:

    $msg = new PhpAmqpLibMessageAMQPMessage('Hello RabbitMQ!');
    
    $channel->basic_publish($msg, '', $queueName);
  6. Terima mesej dan sahkan
    Menerima mesej dilakukan melalui pengguna. Berikut ialah contoh kod untuk pengguna:

    $callback = function ($msg) {
     echo "Received message: " . $msg->body . "
    ";
     $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
    };
    
    $channel->basic_consume($queueName, '', false, false, false, false, $callback);
    
    while (count($channel->callbacks)) {
     $channel->wait();
    }

Dalam kod ini, kami mencipta fungsi panggil balik untuk menerima mesej dan memprosesnya. Selepas memproses, anda perlu mengesahkan bahawa mesej telah diproses melalui kaedah basic_ack. Ini memastikan mesej tidak hilang apabila pengguna keluar secara tidak normal.

  1. Tutup sambungan
    Selepas menyelesaikan penghantaran mesej, sambungan ke RabbitMQ mesti ditutup:

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

Ringkasan
Dengan menggunakan PHP dan RabbitMQ, kita boleh mencapai penghantaran mesej yang boleh dipercayai dengan mudah. Dalam artikel ini, kami menerangkan cara memasang sambungan RabbitMQ dan AMQP serta terperinci cara mewujudkan sambungan, membuat baris gilir, menghantar dan menerima mesej dengan contoh kod. Saya harap artikel ini membantu anda memahami dan menggunakan PHP dan RabbitMQ untuk mencapai pemesejan yang boleh dipercayai.

Atas ialah kandungan terperinci Bagaimana untuk mencapai pemesejan yang boleh dipercayai menggunakan PHP dan RabbitMQ. 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