Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于动态消息更新的RabbitMQ PHP

用于动态消息更新的RabbitMQ PHP
EN

Stack Overflow用户
提问于 2014-10-02 20:06:38
回答 1查看 666关注 0票数 0

我正在学习RabbitMQ,并考虑使用它给用户提供“动态消息”更新,就像facebook提供来自朋友的动态提要一样。

我的想法是:

  1. 每当创建用户时,我都会创建一个具有名称的队列是用户的userId,因此队列名可以是"100_message_queue“(userId_message_queue)。
  2. 生产者将推送此队列中的所有更新。
  3. 从客户端(javascript),它将调用像"GET http://example.com/getliveupdates/100“这样的REST,然后我将从100_message_queue获取所有新的更新,并将其作为响应发送。

我读过RabbitMQ php教程,但不知道这是怎么可能的?此外,消费者永远运行,所以它似乎我不能提出任何休息请求。它让我超时了。

知道如何实现这种结构吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-10-03 01:02:13

当您计划将这些消息传递给web客户端时,我建议您使用MQTT踩踏上的网踩 RabbitMQ插件。对您来说,使用他们的能力超过WebSocket应该是一个完美的解决方案。它为您提供实时消息,这始终是一个专业,可能是您想要的。

至于如何处理永远运行的消费者:

如果您正在使用php-amqp扩展,您可以将read_timeout选项设置为一些小值,例如1(秒),因此当使用者从队列中获取所有消息时,它将等待1秒。更多关于新消息的内容,然后抛出一个异常(我猜是AMQPConnectionException,丑陋的解决方案,但现在是这样做的)。

或者,您可以从队列中AMQPQueue::get消息,直到没有消息为止。

对于php-amqplib,事情应该是一样的,至少想法还是一样的:限制使用者按时间等待新消息,或者以迭代的方式从队列中获取消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26173151

复制
相关文章
php laravel5.5使用rabbitmq消息队列
博主看了一些消息队列,大多数消息队列都没有对 php 比较友好的 SDK,这边 rabbitmq 算是一个不错的消息队列,给大家介绍一下在 Laravel 中如何使用。
憧憬博客
2020/07/21
1.7K0
RabbitMQ消息通信
---- 概述 RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据或者将作业排队以便让分布式服务器进行处理。应用程序通过使用消息队列可以有效的进行解耦。 R
吕海峰
2018/04/03
1.8K0
RabbitMQ消息通信
RabbitMQ消息应答
RabbitMQ消息应答(Message Acknowledgment)是确保消息在消费者处理完毕后进行确认的机制。通过消息应答,消费者可以告知RabbitMQ消息已成功处理,从而确保消息不会丢失。
堕落飞鸟
2023/05/16
3640
RabbitMq消费消息
rabbitmq的消息消费有两种方式,推模式和拉模式。推模式采用basic.consume进行消费,而拉模式则是调用的basic.Get进行消费。
写一点笔记
2022/08/11
1.4K0
消息队列-RabbitMQ
交换机有四种类型:direct exchange、topic exchange、fanout exchange、headers exchange。
lpe234
2021/03/04
1.7K0
RabbitMQ消息队列
全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
小小咸鱼YwY
2020/06/19
1.7K0
RabbitMQ:消息模型
RabbitMQ 提供了 6 种消息模型,分别为:单生产单消费模型(Hello World)、消息分发模型(Work queues)、Fanout 消息订阅模式(Publish/Subscribe)、Direct 路由模式(Routing)、Topic 匹配模式(Topic)、RPC 远程过程调用(RPC)。
栗筝i
2022/12/13
9810
RabbitMQ:消息模型
RabbitMQ消息队列
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
conanma
2022/04/11
5570
消息队列_RabbitMQ
市面上的消息队列有很多,比如 ActiveMQ、RabbitMQ 、 Kafka ,还有阿里的 RocketMQ ,连 redis 这样的 NoSQL 数据库也支持 MQ 功能。 什么叫消息队列 消息(Message)指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中
神秘的寇先森
2018/05/30
7190
RabbitMQ消息队列
1.安装 RabbitMQ部署指南 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一:在线拉取 docker pull rabbitmq:3-management 方式二:从本地加载 在课前资料已经提供了镜像包: image-20210423191210349 上传到虚拟机中后,使用命令加载镜像即可: docker load -i mq.tar 1.2.安装MQ 执行下面的命令来运行MQ容器: docker run \ -e RABBITMQ_DE
用户10521079
2023/05/04
3380
RabbitMQ消息队列
RabbitMQ——消息存储
前一篇文章中提到了消息可存储在队列索引或消息存储中,对于消息存储的方式,整体框架大概如下图所示:
陈猿解码
2023/02/28
8980
RabbitMQ——消息存储
RabbitMQ消息应答
消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况。RabbitMQ一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。 为了保证消息在发送过程中不丢失,rabbitmq引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉rabbitmq它已经处理了,rabbitmq可以把该消息删除了。
一个风轻云淡
2022/11/13
4880
RabbitMQ消息应答
RabbitMq消息发送
如果要发送一个消息,可以使用channel类的basicPublish方法参考如下,其中在rabbitmqTemplate中封装的方式是:
写一点笔记
2022/08/11
8620
RabbitMq消息发送
RabbitMQ消息队列
  RabbitMQ是一个在AMQP基础上完整的、可复用的企业消息系统,遵循Mozilla Public License开源协议。MQ全称Message Queue(消息队列),它是一种应用程序对应用程序的通信方式。应用程序通过读写入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接他们。消息传递指的是程序之间通过在消息中发送数据通信,而不是直接调用彼此来通信,直接调用通常用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
py3study
2020/01/17
7180
RabbitMQ 消息队列
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
py3study
2020/01/16
9250
RabbitMQ消息应答
  消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并且只完成了部分它挂掉了,会发生什么情况。RabbitMQ一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该对象的消息,因为它无法接收到。   为了保证消息在发送过程中不丢失,RabbitMQ引入了消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉RabbitMQ它已经处理了,RabbitMQ可以把该消息删除了。
别团等shy哥发育
2023/02/25
6160
RabbitMQ消息应答
消息队列-RabbitMQ
在微服务的使用中,我们不可避免需要服务之间的相互调用,但传统模式下,我们使用如OpenFeign的调用方式,需要等待被调用方直接业务并返回结果后,才能进行后续任务,此时,调用者会处于阻塞状态。
摸鱼的G
2023/10/26
2760
消息队列-RabbitMQ
消息队列rabbitMQ的初探
1.这里就使用我的云服务器来演示下rabbitmq的安装,首先我们来查看我的linux下的docker的的版本,docker的安装这里就不介绍了。
技术从心
2019/08/06
4730
消息队列rabbitMQ的初探
Rabbitmq---消息队列
有了消息队列,每一次连接不管是生成消息还是消费消息,都有各自的逻辑与其他逻辑无关--通信解耦
Java高级架构
2018/12/14
7190
点击加载更多

相似问题

rabbitmq设置消息属性php

22

用于私人消息传递的RabbitMQ结构

12

更新rabbitmq中消息的有效负载

12

用于微服务的rabbitmq消息会话粘性

10

RabbitMQ PHP库-获取消息头

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文