Heim  >  Artikel  >  Backend-Entwicklung  >  PHP verwendet die ActiveMQ-Fallanalyse (mit Code)

PHP verwendet die ActiveMQ-Fallanalyse (mit Code)

php中世界最好的语言
php中世界最好的语言Original
2018-05-19 10:40:311474Durchsuche

Dieses Mal bringe ich Ihnen eine Fallanalyse von PHP mit ActiveMQ (mit Code). Was sind die Vorsichtsmaßnahmen für PHP mit ActiveMQ?

Verwenden Sie das Punkt-zu-Punkt-Modell

Funktionen des Punkt-zu-Punkt-Modells:

  • Nur ​​ein Verbraucher kann die Nachricht empfangen

  • Kann nicht wiederholt konsumiert werden

Produzent Produzent.

PHP-Code:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp(&#39;tcp://47.52.119.21:61613&#39;);
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i=0; $i<3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/queue/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}
consumer1consumer1 .php-Code:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/queue/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
Consumer2consumer2.php-Code:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/queue/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
Das Ausführungsergebnis ist wie folgt:

Verwenden Sie das Publish/Subscribe-Modell (Publish Subscribe).

Funktionen des Publish/Subscribe-Modells:

Mehrere Verbraucher können Nachrichten empfangen

Kann wiederholt konsumiert werden
Produzent Producer.php-Code:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp(&#39;tcp://47.52.119.21:61613&#39;);
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i = 0; $i < 3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/topic/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}
Verbraucher 1Verbraucher1 .php-Code:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
Consumer 2consumer2.php-Code:

?php
$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
Das Ausführungsergebnis ist wie folgt:

Ich glaube, das haben Sie Nachdem Sie den Fall in diesem Artikel gelesen haben, beherrschen Sie die Methode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der Schritte zum Übergeben von Parametern beim Öffnen einer lokalen EXE-Anwendung mit PHP und JS

So erreichen Sie die PHP-Löschfixierung von Ordnern und Dateien unter dem Pfad

Das obige ist der detaillierte Inhalt vonPHP verwendet die ActiveMQ-Fallanalyse (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn