Essayez Rabbit MQ + PHP sur CentOS

Une note quand j'ai essayé Rabbit MQ pour introduire le traitement asynchrone en PHP.

Préparation MQ

Installation de Rabbit MQ

yum --enablerepo=epel -y install rabbitmq-server
systemctl start rabbitmq-server
systemctl enable rabbitmq-server

Ajouter un utilisateur

rabbitmqctl add_user mquser password
rabbitmqctl list_users

Ajouter un hôte virtuel

rabbitmqctl add_vhost myhost
rabbitmqctl list_vhosts

Paramètres d'autorisation

rabbitmqctl set_permissions -p myhost mquser ".*" ".*" ".*"
rabbitmqctl list_permissions -p myhost

Préparation du programme PHP (émetteur et récepteur)

installation de la bibliothèque php

yum -y install --enablerepo=epel,remi-php73 php php-bcmath composer

installation de compositeur

cd
mkdir mq
cd mq
composer require php-amqplib/php-amqplib
composer install

Expéditeur

Envoyer la création de l'application

vi send_msg.php
<?php
require_once __DIR__ . '/vendor/autoload.php';

use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'mquser', 'password', 'myhost');

$channel = $connection->channel();
$channel->queue_declare('Hello_World', false, false, false, false);

$msg = new AMQPMessage('Hello RabbitMQ World!');
$channel->basic_publish($msg, '', 'Hello_World');
echo " [x] Sent 'Hello_World'\n";

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

Envoyer

php send_msg.php

Receveur

Créer une application de réception

vi receive_msg.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;

$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'mquser', 'password', 'myhost');
$channel = $connection->channel();

$channel->queue_declare('Hello_World', false, false, false, false);

echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";

$callback = function($msg) {
    echo " [x] Received ", $msg->body, "\n";
};

$channel->basic_consume('Hello_World', '', false, true, false, false, $callback);

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

Recevoir

php receive_msg.php
(CTRL+Arrêt à C)

Recommended Posts

Essayez Rabbit MQ + PHP sur CentOS
Essayez OpenLiteSpeed sur CentOS8
Essayez de mettre CentOS 8 dans Raspberry Pi 3
Comment installer la beta php8.0 sur CentOS8
Commande pour installer nginx / PHP7 / php-fpm sur CentOS7
Tutoriel Maven sur CentOS 7
Essayez DisplayLink sur Ubuntu 20.04
Installation de Docker sur CentOS 6
Utiliser perltidy sur CentOS 8
Installez Golang sur CentOS 8
Installez Neo4j 4.1.3 sur centOS
Tomcat v8 sur CentOS7
Installez Vertica 10.0 sur CentOS 6.10
Installation de Zabbix 5 sur CentOS 8
Utilisez mod_auth_cas sur CentOS 8
Installez PostgreSQL 12 sur Centos8
Installez Python 3 sur CentOS 7
Installez kuromoji sur CentOS7
Jetty v8 sur CentOS7
Installation d'OpenJDK sur CentOS7
Installez PostGIS 2.5.5 sur CentOS7
Installez jpndistrict sur CentOS 7
Installez Redmine 4.1.1 sur CentOS 7
Installation de Smokeping sur CentOS7
Installez PostgreSQL 13 sur CentOS 7.5
Rendre exFat disponible sur CentOS 7
Essayez Docker sur Windows 10 Famille
Installez OpenFOAM v2006 sur CentOS
Configurer Gitolite sur CentOS 7
Installez Jenkins sur CentOS de Docker
Installez Apache sur CentOS sur VirtualBox
Changer la version java sur CentOS
Installez Ruby 2.7 sur CentOS 7 (SCL)
Effectuer la rotation des journaux avec centos
Essayez Spring Boot sur Mac
[Ruby on Rails] Read try (: [] ,: key)
Comment déployer Laravel sur CentOS 7
Activer Openjdk10 et maven sur CentOS
Essayez Redmine sur le docker Mac
Installez Ruby 2.5 sur CentOS 7 en utilisant SCL
Installation de Java Open JDK 8 sur CentOS 7
Essayez Quarkus avec IBM Cloud Shell
WordPress avec Docker Compose sur CentOS 8
Comment installer MariaDB 10.4 sur CentOS 8
Installez apache 2.4.46 à partir des sources sur CentOS 7
Utilisez la commande iostat sur CentOS 8
Essayez Docker sur Windows Home (septembre 2020)
Essayez d'exécuter Spring Boot sur Kubernetes
J'ai essayé d'installer CentOS 8 sur ESXi 6.7