Cara menggunakan PHP dan RabbitMQ untuk melaksanakan model penerbitan dan langganan mesej
RabbitMQ ialah sistem baris gilir mesej berprestasi tinggi dan boleh dipercayai, dan PHP ialah bahasa skrip sebelah pelayan yang popular Gabungan kedua-duanya boleh melaksanakan penerbitan mesej dengan berkesan dengan model langganan. Artikel ini akan memperkenalkan cara menggunakan PHP dan RabbitMQ untuk melaksanakan fungsi penerbitan dan langganan mesej, serta melampirkan contoh kod.
Pertama, anda perlu memasang RabbitMQ pada pelayan. Anda boleh memuat turun pakej pemasangan yang sesuai untuk pelayan anda sendiri dari laman web rasmi RabbitMQ (https://www.rabbitmq.com/), dan pasang serta konfigurasikannya mengikut dokumentasi rasmi.
Dalam PHP, operasi RabbitMQ memerlukan penggunaan sambungan AMQP. Sambungan AMQP boleh dipasang melalui arahan berikut:
sudo apt-get install php-amqp
Untuk menyambung ke pelayan RabbitMQ, kami perlu mengkonfigurasi maklumat sambungan. Dalam contoh, kami akan menggunakan maklumat sambungan tempatan lalai, iaitu untuk menyambung ke pelayan RabbitMQ tempatan.
$connection = new AMQPConnection([ 'host' => 'localhost', 'port' => '5672', 'vhost' => '/', 'login' => 'guest', 'password' => 'guest' ]);
Dalam RabbitMQ, penerbitan dan langganan mesej dilaksanakan melalui pertukaran dan giliran. Pertukaran bertanggungjawab untuk menerima mesej dan menghalakannya ke baris gilir yang sepadan, manakala baris gilir bertanggungjawab untuk menyimpan mesej dan memberikannya kepada pengguna.
Dalam contoh, kami mengisytiharkan pertukaran bernama "test_exchange" dan baris gilir bernama "test_queue".
$channel = $connection->channel(); $channel->exchange_declare('test_exchange', 'fanout', false, false, false); list($queue_name, ,) = $channel->queue_declare('test_queue', false, false, true, false); $channel->queue_bind($queue_name, 'test_exchange');
Kini, kita boleh mula menerbitkan dan melanggan mesej. Dalam contoh, kami menghantar mesej ringkas kepada "test_exchange" dan melanggannya melalui "test_queue" yang ditentukan.
$message = 'Hello, RabbitMQ!'; $channel->basic_publish( new AMQPMessage($message), 'test_exchange', '' ); echo " [x] Sent '$message' "; $channel->basic_consume( $queue_name, '', false, true, false, false, function ($msg) { echo ' [x] Received ', $msg->body, " "; } ); while (count($channel->callbacks)) { $channel->wait(); }
Simpan kod di atas ke dalam fail PHP, dan kemudian jalankan fail itu melalui terminal.
php example.php
Anda boleh melihat bahawa maklumat yang berkaitan dengan penerbitan dan langganan mesej dikeluarkan dalam terminal.
Melalui langkah di atas, kami berjaya melaksanakan mod penerbitan dan langganan mesej menggunakan PHP dan RabbitMQ.
Ringkasan:
Artikel ini memperkenalkan cara menggunakan PHP dan RabbitMQ untuk melaksanakan fungsi penerbitan dan langganan mesej, serta menyediakan contoh kod terperinci. Dengan menggunakan RabbitMQ, kami boleh melaksanakan sistem baris gilir mesej berprestasi tinggi dan boleh dipercayai, menyediakan mekanisme pemesejan yang lebih fleksibel dan berskala untuk aplikasi.
Atas ialah kandungan terperinci Cara menggunakan PHP dan RabbitMQ untuk melaksanakan penerbitan mesej dan corak langganan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!