国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Introduction
"Hello World"
(using the php-amqplib Client)
The php-amqplib client library
Sending(發(fā)送)
Sending doesn't work!(發(fā)布出去消息咋辦)
Receiving(接收消息)
Maison développement back-end tutoriel php rabbitmq php tutorial -一

rabbitmq php tutorial -一

Jun 13, 2016 am 11:53 AM
messages nbsp quot rabbitmq the

rabbitmq php tutorial -1

Introduction


RabbitMQ is a message broker. In essence, it accepts messages from?producers, and delivers them to?consumers. In-between, it can route, buffer, and persist the messages according to rules you give it.

RabbitMQ 是一個(gè)消息代理。說白了,它從“生產(chǎn)者”接收消息,并將這些消息發(fā)送給“消費(fèi)者”。在這個(gè)過程中,它可以根據(jù)你給定的規(guī)則對消息進(jìn)行路由、緩沖和持久化。

RabbitMQ, and messaging in general, uses some jargon.(常用術(shù)語)

  • Producing?means nothing more than sending. A program that sends messages is a?producer. We'll draw it like that, with "P":

  • 生產(chǎn)無非就是發(fā)送。一個(gè)發(fā)送消息的程序就是一個(gè)“生產(chǎn)者”,我們用“P”來表示它。
  • ?

  • A queue?is the name for a mailbox. It lives inside RabbitMQ. Although messages flow through RabbitMQ and your applications, they can be stored only inside a?queue. A?queue?is not bound by any limits, it can store as many messages as you like - it's essentially an infinite buffer. Many?producers?can send messages that go to one queue - many?consumers?can try to receive data from one?queue. A queue will be drawn like this, with its name above it:

  • 隊(duì)列就像是郵箱的名字。它存于RabbitMQ內(nèi)部。盡管消息流貫穿于RabbitMQ和你的應(yīng)用,但它只能存儲于隊(duì)列當(dāng)中。隊(duì)列不受任何限制,隨便你存多少消息,看你心情-隊(duì)列本質(zhì)上是一個(gè)無窮大的緩沖區(qū)。 多個(gè)“消費(fèi)者”可以發(fā)送消息給一個(gè)隊(duì)列-多個(gè)“消費(fèi)者”也可以從一個(gè)隊(duì)列接收消息。我們這樣來表示一個(gè)隊(duì)列(如下),上面是它的名字。
  • ?

  • Consuming?has a similar meaning to receiving. A?consumer?is a program that mostly waits to receive messages. On our drawings it's shown with "C":

  • 消費(fèi)意思就是接收?!毕M(fèi)者“通常是一個(gè)等待接受消息的程序。我們用“C”來表示。
  • ?

Note that the producer, consumer, and broker do not have to reside on the same machine; indeed in most applications they don't.

注意:生產(chǎn)者、消費(fèi)者和消息代理(中間人)不是必須在一個(gè)機(jī)器上,確實(shí)如此,大多數(shù)應(yīng)用程序都這樣。

"Hello World"

(using the php-amqplib Client)

In this part of the tutorial we'll write two programs in PHP; a producer that sends a single message, and a consumer that receives messages and prints them out. We'll gloss over some of the detail in the?php-amqplib?API, concentrating on this very simple thing just to get started. It's a "Hello World" of messaging.

在這一扒,我們會(huì)寫倆PHP程序,一個(gè)發(fā)送單一消息的生產(chǎn)者,和一個(gè)接收消息并打印的消費(fèi)者。我們略過一些php-amqplib API的細(xì)節(jié),集中精力到這些簡單的事兒上來開個(gè)頭兒 —— 一個(gè)消息的Hello World程序。

In the diagram below, "P" is our producer and "C" is our consumer. The box in the middle is a queue - a message buffer that RabbitMQ keeps on behalf of the consumer.

在下面的圖表中,P是我們的生產(chǎn)者,C是我們的消費(fèi)者。中間內(nèi)筐就是個(gè)隊(duì)列-一個(gè)由RabbitMQ維持的消息緩沖區(qū)。

(P) -> [|||] -> (C)

The php-amqplib client library

RabbitMQ speaks?AMQP, which is an open, general-purpose protocol for messaging. There are a number of clients for AMQP in?many different languages. We'll use the php-amqplib in this tutorial.

RabbitMQ 遵循AMQP——一個(gè)開放的、多用途的消息協(xié)議。還有若干不同語言的的AMQP客戶端。我們就用php-amqplib啦~

Add a composer.json file to your project: 在你的項(xiàng)目中添加一個(gè)composer.json文件,內(nèi)容如下:

{    "require": {        "videlalvaro/php-amqplib": "v2.1.0"    }}

Provided you have?composer?installed, you can run the following: 假使你已經(jīng)安裝了composer, 有可以執(zhí)行下面的命令:

$ composer.phar install

Now we have the php-amqplib installed, we can write some code.

現(xiàn)在php-amqplib安完了,寫點(diǎn)code唄。

Sending(發(fā)送)

(P) -> [|||]

We'll call our message sender?send.php?and our message receiver?receive.php. The sender will connect to RabbitMQ, send a single message, then exit.

創(chuàng)建一個(gè)文件send.php來發(fā)消息,receive.php來收消息。發(fā)送方(send.php)連接RabbitMQ發(fā)送一條消息,然后退出程序。

In?send.php, we need to include the library and?use?the necessary classes:

send.php里,需要包含必要的庫及引入必要的類。

require_once __DIR__ . '/vendor/autoload.php';use PhpAmqpLib\Connection\AMQPConnection;use PhpAmqpLib\Message\AMQPMessage;

then we can create a connection to the server:

然后創(chuàng)建連接服務(wù)器的connection.

$connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');$channel = $connection->channel();

The connection abstracts the socket connection, and takes care of protocol version negotiation and authentication and so on for us. Here we connect to a broker on the local machine - hence the?localhost. If we wanted to connect to a broker on a different machine we'd simply specify its name or IP address here.

這個(gè)連接幫我們做socket鏈接,處理協(xié)議版本談判和鑒定。這樣呢我們就鏈接到了本地的消息代理(broker),因?yàn)槭莑ocalhost嘛。如果想鏈接不同機(jī)器上的broker,簡單的指定下名字或者IP地址就好啦,就是替換一下上面的localhost。

Next we create a channel, which is where most of the API for getting things done resides.

下面我們創(chuàng)建個(gè)信道——多數(shù)API干的活都在這里完成。

To send, we must declare a queue for us to send to; then we can publish a message to the queue:

為了能發(fā)送消息,必須聲明一個(gè)隊(duì)列。然后就可以發(fā)送消息到了。

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

Declaring a queue is idempotent - it will only be created if it doesn't exist already. The message content is a byte array, so you can encode whatever you like there.

聲明隊(duì)列是冪等的——只有在它不存在的情況下才會(huì)被創(chuàng)建。消息內(nèi)容是字節(jié)數(shù)組,所以呢,你可以編碼一下隨便啥,放那替換下就能發(fā)。

Lastly, we close the channel and the connection;

末了,關(guān)閉信道和服務(wù)器連接。

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

Here's the whole send.php class. (這是整個(gè)send.php類文件)

Sending doesn't work!(發(fā)布出去消息咋辦)

If this is your first time using RabbitMQ and you don't see the "Sent" message then you may be left scratching your head wondering what could be wrong. Maybe the broker was started without enough free disk space (by default it needs at least 1Gb free) and is therefore refusing to accept messages. Check the broker logfile to confirm and reduce the limit if necessary. The?configuration file documentation?will show you how to setdisk_free_limit.

如果你頭一次用RabbitMQ并且沒看到"已發(fā)送(sent)"字樣的提示信息,然后剩下的就是撓頭了——為毛呢?哪錯(cuò)了?有可能是broker啟動(dòng)時(shí)木有足夠可用的硬盤空間(默認(rèn)需要至少1G),所以拒絕接受消息。檢查broker日志文件確定一下,有必要的話,調(diào)低下限值。這個(gè)配置文件會(huì)告訴你咋設(shè)置可用硬盤限值。

Receiving(接收消息)

That's it for our sender. Our receiver is pushed messages from RabbitMQ, so unlike the sender which publishes a single message, we'll keep it running to listen for messages and print them out.

發(fā)送者就是這么回事啦。接收者呢,顧名思義就是接收從RabbitMQ推送過來的消息,所以不像發(fā)送者哪有就發(fā)一條消息就完了。

我們保持接收者一直運(yùn)行來接收和打印消息。

[|||] -> (C)

The code (in?receive.php) has almost the same?include?and?uses as?send:

receive.php中include和use的代碼幾乎和send.php一樣。

require_once __DIR__ . '/vendor/autoload.php';use PhpAmqpLib\Connection\AMQPConnection;

Setting up is the same as the sender; we open a connection and a channel, and declare the queue from which we're going to consume. Note this matches up with the queue that?send publishes to.

設(shè)置也和上面一樣,打開一個(gè)連接和信道,聲明一個(gè)我們要消費(fèi)(接收消息)的隊(duì)列。注意這里要和上面發(fā)送者的的聲明要對應(yīng)。

$connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');$channel = $connection->channel();$channel->queue_declare('hello', false, false, false, false);echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";

Note that we declare the queue here, as well. Because we might start the receiver before the sender, we want to make sure the queue exists before we try to consume messages from it.

主要這里我們也同樣聲明了隊(duì)列。因?yàn)橛锌赡芪覀冊诎l(fā)送者發(fā)送消息之前就開始接收了,所以在我們從中接收消息之前得確定存它在呀。

We're about to tell the server to deliver us the messages from the queue. We will define a?PHP callable?that will receive the messages sent by the server. Keep in mind that messages are sent asynchronously from the server to the clients.

我們得告訴服務(wù)器從隊(duì)列中給我們遞送消息。定義個(gè)回調(diào)來接收服務(wù)器發(fā)送的消息。記住啊,消息從服務(wù)器發(fā)送到客戶端是異步的啊。

$callback = function($msg) {  echo " [x] Received ", $msg->body, "\n";};$channel->basic_consume('hello', '', false, true, false, false, $callback);while(count($channel->callbacks)) {    $channel->wait();}

Our code will block while our?$channel?has callbacks. Whenever we receive a message our$callback?function will be passed the received message.

由于$channel有回調(diào),所以我們的代碼會(huì)阻塞?。ㄊ章犗⒙?,不是 bug哦),啥時(shí)候我們收到了消息,回調(diào)函數(shù)就會(huì)處理它啦。

Here's the whole receive.php class(完整的receive.php類文件)

Putting it all together(合體?。。。?/h3>

Now we can run both scripts. In a terminal, run the sender:

寫都寫完了,跑一下唄,先跑sender

$ php send.php

then, run the receiver:然后跑receiver

$ php receive.php

The receiver will print the message it gets from the sender via RabbitMQ. The receiver will keep running, waiting for messages (Use Ctrl-C to stop it), so try running the sender from another terminal.

內(nèi)個(gè),接收者會(huì)把從RabbitMQ接收的消息打印出來,當(dāng)然這消息是發(fā)送者發(fā)給RabbitMQ的。接收者會(huì)在這死磕,一直跟這等消息(用Ctrl-C可以給干掉它),試試在其他的終端跑一下sender.

If you want to check on the queue, try using?rabbitmqctl list_queues.

要想看看這個(gè)隊(duì)列,用一下rabbitmqctl list_queues這個(gè)命令。(內(nèi)個(gè)。。在sbin/下呢哦,找不到的話)

Hello World! 你好呀,世界~~

Time to move on to?part 2?and build a simple?work queue. (敬請期待,哦吼吼吼~~)

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment ajuster les paramètres de bordure de fenêtre sous Windows 11?: modifier la couleur et la taille Comment ajuster les paramètres de bordure de fenêtre sous Windows 11?: modifier la couleur et la taille Sep 22, 2023 am 11:37 AM

Windows 11 met au premier plan un design frais et élégant ; l'interface moderne vous permet de personnaliser et de modifier les moindres détails, tels que les bordures des fenêtres. Dans ce guide, nous discuterons des instructions étape par étape pour vous aider à créer un environnement qui reflète votre style dans le système d'exploitation Windows. Comment modifier les paramètres de bordure de fenêtre ? Appuyez sur + pour ouvrir l'application Paramètres. WindowsJe vais dans Personnalisation et clique sur Paramètres de couleur. Changement de couleur Paramètres des bordures de fenêtre Fenêtre 11" Largeur = "643" Hauteur = "500" > Recherchez l'option Afficher la couleur d'accent sur la barre de titre et les bordures de fenêtre et activez le commutateur à c?té. Pour afficher les couleurs d'accent dans le menu Démarrer et la barre des taches Pour afficher la couleur du thème dans le menu Démarrer et la barre des taches, activez Afficher le thème dans le menu Démarrer et la barre des taches.

Solution?: Votre organisation vous demande de modifier votre code PIN Solution?: Votre organisation vous demande de modifier votre code PIN Oct 04, 2023 pm 05:45 PM

Le message ? Votre organisation vous a demandé de modifier votre code PIN ? appara?tra sur l'écran de connexion. Cela se produit lorsque la limite d'expiration du code PIN est atteinte sur un ordinateur utilisant les paramètres de compte basés sur l'organisation, sur lesquels ils contr?lent les appareils personnels. Cependant, si vous configurez Windows à l'aide d'un compte personnel, le message d'erreur ne devrait idéalement pas appara?tre. Même si ce n'est pas toujours le cas. La plupart des utilisateurs qui rencontrent des erreurs déclarent utiliser leur compte personnel. Pourquoi mon organisation me demande-t-elle de modifier mon code PIN sous Windows 11 ? Il est possible que votre compte soit associé à une organisation et votre approche principale devrait être de le vérifier. Contacter votre administrateur de domaine peut vous aider?! De plus, des paramètres de stratégie locale mal configurés ou des clés de registre incorrectes peuvent provoquer des erreurs. Tout de suite

Comment changer la couleur de la barre de titre sous Windows 11 ? Comment changer la couleur de la barre de titre sous Windows 11 ? Sep 14, 2023 pm 03:33 PM

Par défaut, la couleur de la barre de titre sous Windows 11 dépend du thème sombre/clair que vous choisissez. Cependant, vous pouvez le changer pour la couleur de votre choix. Dans ce guide, nous discuterons des instructions étape par étape sur trois fa?ons de le modifier et de personnaliser votre expérience de bureau pour la rendre visuellement attrayante. Est-il possible de changer la couleur de la barre de titre des fenêtres actives et inactives ? Oui, vous pouvez modifier la couleur de la barre de titre des fenêtres actives à l'aide de l'application Paramètres, ou vous pouvez modifier la couleur de la barre de titre des fenêtres inactives à l'aide de l'éditeur du Registre. Pour conna?tre ces étapes, passez à la section suivante. Comment changer la couleur de la barre de titre sous Windows 11 ? 1. Appuyez sur + pour ouvrir la fenêtre des paramètres à l'aide de l'application Paramètres. WindowsJe vais dans "Personnalisation" puis

Comment activer ou désactiver les aper?us miniatures de la barre des taches sur Windows 11 Comment activer ou désactiver les aper?us miniatures de la barre des taches sur Windows 11 Sep 15, 2023 pm 03:57 PM

Les miniatures de la barre des taches peuvent être amusantes, mais elles peuvent aussi être distrayantes ou ennuyeuses. Compte tenu de la fréquence à laquelle vous survolez cette zone, vous avez peut-être fermé plusieurs fois des fenêtres importantes par inadvertance. Un autre inconvénient est qu'il utilise plus de ressources système, donc si vous cherchez un moyen d'être plus efficace en termes de ressources, nous allons vous montrer comment le désactiver. Cependant, si vos spécifications matérielles peuvent le gérer et que vous aimez l'aper?u, vous pouvez l'activer. Comment activer l’aper?u miniature de la barre des taches dans Windows 11 ? 1. Utilisez l'application Paramètres pour appuyer sur la touche et cliquez sur Paramètres. Windows, cliquez sur Système et sélectionnez à propos. Cliquez sur Paramètres système avancés. Accédez à l'onglet Avancé et sélectionnez Paramètres sous Performances. Sélectionnez "Effets visuels"

10 fa?ons de régler la luminosité sous Windows 11 10 fa?ons de régler la luminosité sous Windows 11 Dec 18, 2023 pm 02:21 PM

La luminosité de l’écran fait partie intégrante de l’utilisation des appareils informatiques modernes, en particulier lorsque vous regardez l’écran pendant de longues périodes. Il vous aide à réduire la fatigue oculaire, à améliorer la lisibilité et à visualiser le contenu facilement et efficacement. Cependant, en fonction de vos paramètres, il peut parfois être difficile de gérer la luminosité, notamment sous Windows 11 avec les nouvelles modifications de l'interface utilisateur. Si vous rencontrez des difficultés pour régler la luminosité, voici toutes les manières de gérer la luminosité sous Windows 11. Comment modifier la luminosité sous Windows 11 [10 méthodes expliquées] Les utilisateurs d'un seul moniteur peuvent utiliser les méthodes suivantes pour régler la luminosité sous Windows 11. Cela inclut les systèmes de bureau utilisant un seul moniteur ainsi que les ordinateurs portables. Commen?ons. Méthode 1?: Utiliser le Centre d'action Le Centre d'action est accessible

Afficher le guide de mise à l'échelle sur Windows 11 Afficher le guide de mise à l'échelle sur Windows 11 Sep 19, 2023 pm 06:45 PM

Nous avons tous des préférences différentes en matière de mise à l'échelle de l'affichage sur Windows 11. Certaines personnes aiment les grandes ic?nes, d’autres les petites. Cependant, nous sommes tous d’accord sur le fait qu’il est important d’avoir la bonne échelle. Une mauvaise mise à l'échelle des polices ou une mise à l'échelle excessive des images peuvent nuire à la productivité lorsque vous travaillez. Vous devez donc savoir comment la personnaliser pour tirer le meilleur parti des capacités de votre système. Avantages du zoom personnalisé : Il s'agit d'une fonctionnalité utile pour les personnes qui ont des difficultés à lire du texte à l'écran. Cela vous aide à voir plus sur l’écran à la fois. Vous pouvez créer des profils d'extension personnalisés qui s'appliquent uniquement à certains moniteurs et applications. Peut aider à améliorer les performances du matériel bas de gamme. Cela vous donne plus de contr?le sur ce qui est sur votre écran. Comment utiliser Windows 11

Comment réparer le code d'erreur d'activation 0xc004f069 dans Windows Server Comment réparer le code d'erreur d'activation 0xc004f069 dans Windows Server Jul 22, 2023 am 09:49 AM

Le processus d'activation sous Windows prend parfois une tournure soudaine pour afficher un message d'erreur contenant ce code d'erreur 0xc004f069. Bien que le processus d'activation soit en ligne, certains anciens systèmes exécutant Windows Server peuvent rencontrer ce problème. Effectuez ces vérifications initiales et si elles ne vous aident pas à activer votre système, passez à la solution principale pour résoudre le problème. Solution de contournement?: fermez le message d'erreur et la fenêtre d'activation. Ensuite, redémarrez votre ordinateur. Réessayez le processus d'activation de Windows à partir de zéro. Correctif 1 – Activer depuis le terminal Activez le système Windows Server Edition à partir du terminal cmd. étape – 1 Vérifiez la version de Windows Server Vous devez vérifier quel type de W vous utilisez

Comment créer une application de messagerie fiable avec React et RabbitMQ Comment créer une application de messagerie fiable avec React et RabbitMQ Sep 28, 2023 pm 08:24 PM

Comment créer une application de messagerie fiable avec React et RabbitMQ Introduction : Les applications modernes doivent prendre en charge une messagerie fiable pour obtenir des fonctionnalités telles que les mises à jour en temps réel et la synchronisation des données. React est une bibliothèque JavaScript populaire pour créer des interfaces utilisateur, tandis que RabbitMQ est un middleware de messagerie fiable. Cet article explique comment combiner React et RabbitMQ pour créer une application de messagerie fiable et fournit des exemples de code spécifiques. Présentation de RabbitMQ?:

See all articles