Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie das einfache und zuverlässige Rabbitmq-Komponentenpaket in PHP
Wenn Rabbitmq im Projekt weit verbreitet ist, finden Sie hier eine einfache Zusammenfassung der regulären Funktionen von RabbitMq, die in ein Composer-Paket, eine Composer-Paketadresse und eine Github-Adresse gekapselt sind. Aufgrund der begrenzten Ebene sind Fehler unvermeidlich . Willkommen Geben Sie wertvolle Ratschläge.
Eine sekundäre Kapselung des Pakets php-amqplib/php-amqplib, die eine Reihe sofort einsatzbereiter Produktionslösungen für allgemeine Funktionen bereitstellt. Die Liste der derzeit unterstützten Funktionen lautet wie folgt:
Push-Nachrichten an Direktschalter (einschließlich verzögerter Nachrichten)
Push-Nachrichten an Sektorschalter (einschließlich verzögerter Nachrichten)
Push-Nachrichten an Themenschalter (einschließlich verzögerter Nachrichten). Nachrichten)
Zuverlässiger Konsum im Rahmen des Abonnementmodells, Verbraucher werden versuchen, den Konsum nach einem Fehler fortzusetzen, bis zu 5 Versuche.
Zuverlässiger Verbrauch im Pull-Modus, Verbraucher versuchen, den Verbrauch nach einem Fehler fortzusetzen, bis zu 5 Versuche.
Wenn es weitere Szenen gibt, fügen Sie sie bitte später hinzu und wiederholen Sie sie! !
Die PHP-Versionsanforderungen des Installationspakets hängen hauptsächlich von den Anforderungen des Pakets php-amqplib/php-amqplib selbst ab. Um den Benutzern von php5.0 Rechnung zu tragen, verwenden wir das Paket php-amqplib/. php-amqplib-Paket V2. Version 9.0.
Spezifische Anforderungen finden Sie hier.
Der Autor empfiehlt jedoch die Verwendung von PHP7.0 und höher. Dieses Entwicklungspaket wurde auch auf Version 7.0 entwickelt!
composer require maweibinguo/easyrabbitmq
Hier empfehlen wir die Kombination aus PHP-Skript + Supervisor, um die Zuverlässigkeit des Konsumprozesses sicherzustellen und die Konsumfähigkeit der Mitarbeiter zu verbessern! Wenn Sie noch nie von Supervisor gehört haben, können Sie hier klicken, um mehr darüber zu erfahren
$config = [ "host" => "127.0.0.1", "port" => "5672", "user" => "guest", "password" => "guest", "vhost" => "/", "channel_max_num" => 10, ]; $instance = RabbitMq::getInstance($config); //延迟消息,30 秒中后才会到达指定的交换机 $instance->pushToDirect( $msg = time(), //消息体内容 $exchange = "easy_direct_exchange", //交换机名称 $routingKey = "direct_test_queue", //消息的routingKey,consume(get) 方法到bingdingKey 要和routingKey保持一致 $delaySec = 30 //延迟秒数 ); //无延迟,推入到指定到直链交换机 $instance->pushToDirect( $msg = time(), //消息体内容 $exchange = "easy_direct_exchange", //交换机名称 $routingKey = "direct_test_queue", //消息的routingKey,consume(get) 方法到bingdingKey 要和routingKey保持一致 );
2-1, Abonnement Modus
Zuverlässiger Verbrauch im Abonnementmodus
$config = [ "host" => "127.0.0.1", "port" => "5672", "user" => "guest", "password" => "guest", "vhost" => "/", "channel_max_num" => 10, ]; $instance = RabbitMq::getInstance($config); //延迟消息,30 秒中后才会到达指定的交换机 $instance->pushToFanout( $msg = time(), //消息体内容 $exchange = "easy_fanout_exchange", //交换机名称 $delaySec = 30 //延迟秒数 ); //无延迟,推入到指定到直链交换机 $instance->pushToFanout( $msg = time(), //消息体内容 $exchange = "easy_fanout_exchange" //交换机名称 );
$config = [ "host" => "127.0.0.1", "port" => "5672", "user" => "guest", "password" => "guest", "vhost" => "/", "channel_max_num" => 10, ]; $instance = RabbitMq::getInstance($config); //延迟消息,30 秒中后才会到达指定的交换机 $instance->pushToTopic( $msg = time(), //消息体内容 $exchange = "easy_topic_exchange", //交换机名称 /** * routingKey 要同consum(get)方法的bindingKey相匹配 * bindingKey支持两种特殊的字符"*"、“#”,用作模糊匹配, 其中"*"用于匹配一个单词、“#”用于匹配多个单词(也可以是0个) * 无论是bindingKey还是routingKey, 被"."分隔开的每一段独立的字符串就是一个单词, easy.topic.queue, 包含三个单词easy、topic、queue */ $routingKey = "easy.topic.queue", $delaySec = 30 //延迟秒数 ); //无延迟,推入到指定到直链交换机 $instance->pushToTopic( $msg = time(), //消息体内容 $exchange = "easy_topic_exchange", //交换机名称 $routingKey = "easy.topic.queue" );
Das obige ist der detaillierte Inhalt vonSo verwenden Sie das einfache und zuverlässige Rabbitmq-Komponentenpaket in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!