当前位置: 首页 > 编程笔记 >

PHP使用ActiveMQ实例

王伯寅
2023-03-14
本文向大家介绍PHP使用ActiveMQ实例,包括了PHP使用ActiveMQ实例的使用技巧和注意事项,需要的朋友参考一下

使用点对点(Point To Point)模型

点对点模型特点:

  • 只有一个消费者可以接收到消息
  • 不能重复消费

生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 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());
}

消费者1consumer1.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消费者2consumer2.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

执行结果图如下:

使用发布/订阅(Publish Subscribe)模型

发布/订阅模型特点:

多个消费者都可以收到消息
能重复消费
生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 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());
}

消费者1consumer1.php代码:

<?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);
  }
}

消费者2consumer2.php代码:

?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);
  }
}

执行结果图如下:

 类似资料:
  • 本文向大家介绍PHP使用ActiveMQ实现消息队列的方法详解,包括了PHP使用ActiveMQ实现消息队列的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用ActiveMQ实现消息队列的方法。分享给大家供大家参考,具体如下: 前面我们已经学了如何部署ActiveMQ, 我们知道通过ActiveMQ的一个管理后台可以查看任务队列。 今天 用PHP来操作ActiveMQ,我

  • 我有两个经纪人A和B。如果我想将消息从A转发给B,一切都很简单。我只需要代理中的网络连接器,如下所示: 如果我想从其他队列中使用来自代理 B 的消息,我会犹豫不决(让我们将其命名为 QUEUE。自。消费)我只需要做同样的事情,但双工设置为true,只需听队列。自。在代理 A 上消费,如下所示: 但是它不像我预期的那样工作。似乎每一秒钟只有一条信息被转发,其余的都丢失了。令人惊讶的是,这在代理B队列

  • 本文向大家介绍PHP curl使用实例,包括了PHP curl使用实例的使用技巧和注意事项,需要的朋友参考一下 概述 本博客的前面两篇文章:curl和libcurl简介以及PHP中使用curl对PHP中curl的使用做了简单介绍,但是PHP中curl的使用却并不简单,尤其是curl的各种配置项,本篇文章会讲解几个PHP的实例,以便大家更好的理解curl。 实例:抓取页面 使用curl抓取页面相对来

  • 本文向大家介绍PHP SplObjectStorage使用实例,包括了PHP SplObjectStorage使用实例的使用技巧和注意事项,需要的朋友参考一下 PHP SPL SplObjectStorage是用来存储一组对象的,特别是当你需要唯一标识对象的时候。 PHP SPL SplObjectStorage类实现了Countable,Iterator,Serializable,ArrayAc

  • 本文向大家介绍ActiveMQ:使用Python访问ActiveMQ的方法,包括了ActiveMQ:使用Python访问ActiveMQ的方法的使用技巧和注意事项,需要的朋友参考一下 Windows 10家庭中文版,Python 3.6.4,stomp.py 4.1.21 ActiveMQ支持Python访问,提供了基于STOMP协议(端口为61613)的库。 ActiveMQ的官文Cross L

  • 本文向大家介绍php使用GeoIP库实例,包括了php使用GeoIP库实例的使用技巧和注意事项,需要的朋友参考一下 需要注意的是maxmind是geoip数据库的提供方, 同时也提供了很多语言的sample和api说明文档。 比如php,和php的geoip库是有很大区别的,包含使用方式,接口函数。 php官方的geoip需要配置php环境,加载geoip.dll库,并在php.ini中指定GEO