activemq php java_PHP使用ActiveMQ实例

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

点对点模型特点:

只有一个消费者可以接收到消息

不能重复消费

生产者producer.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代码:

$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代码:

$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);

}

}

执行结果图如下:

5181af82b40d38fdf2452e46fb4d8666.png

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

发布/订阅模型特点:

多个消费者都可以收到消息

能重复消费

生产者producer.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代码:

$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);

}

}

执行结果图如下:

e717f72ffbc795be200e18a102cbf473.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值