问题标签 [amqp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
21884 浏览

rabbitmq - 为什么使用 AMQP/ZeroMQ/RabbitMQ

而不是编写自己的库。

我们正在这里做一个项目,该项目将是一个自划分的服务器池,如果一个部分变得太重,经理会将它划分并作为一个单独的进程放在另一台机器上。它还会提醒所有连接的客户端连接到新服务器。

我很好奇使用 ZeroMQ 进行服务器间和进程间通信。我的搭档宁愿自己动手。我期待社区来回答这个问题。

我自己是一个相当新手的程序员,刚刚了解了消息队列。正如我用谷歌搜索和阅读的那样,似乎每个人都在使用消息队列来处理各种事情,但为什么呢?是什么让他们比编写自己的库更好?为什么它们如此普遍,为什么有这么多?

0 投票
1 回答
1190 浏览

php - 多消费者一队列

是否可以让多个消费者在 RabbitMQ 中共享一个队列?我目前正在使用这个php 库与 RabbitMQ 一起工作,据我观察,虽然我有 2 个相同的消费者脚本实例正在运行,但只有一个会响应传递的消息......

0 投票
1 回答
7653 浏览

python - 尝试遵循 celery 教程时,RabbitMQ 给出“访问被拒绝,用户登录被拒绝”错误

我正在尝试按照celery 教程进行操作,但是在运行时遇到了问题python manage.py celeryd:我的 RabbitMQ 服务器(安装在我的开发盒上的虚拟机上)不允许我的用户登录。

我在 Django 管理控制台上得到以下信息:

这显示在rabbit.log我的 RabbitMQ 服务器上的文件中:

我仔细检查了我的用户、权限和虚拟主机信息,它们似乎都匹配。非常感谢任何帮助故障排除。

更新:根据@asksol 的建议,我得到以下回溯:

0 投票
1 回答
2030 浏览

delphi - 如何在没有 HTTP 的情况下在 Delphi 中创建和处理 SOAP 请求?

是否有推荐的方法/教程显示如何在没有 THTTPRio 的情况下使用 Delphi 创建和处理纯 SOAP 请求,例如,如果我想实现SOAP over JMSSOAP over AMQPSOAP over SMTP

简化代码示例:

此代码将使用参数 Arg1 和 Arg2 为“添加”方法调用生成带有 SOAP 消息的 XML。

此代码将采用 SOAP 请求 XML 并调用该方法。方法调用的结果将被包装为 SOAP 响应并准备好发送给客户端。

0 投票
5 回答
20458 浏览

performance - 低延迟、大规模的消息队列

我正在重新思考 Facebook 应用程序和云计算时代的大型多人游戏。

假设我要在现有的开放协议之上构建一些东西,并且我想同时为 1,000,000 名玩家提供服务,只是为了确定问题的范围。

假设每个玩家都有一个传入消息队列(用于聊天等),平均还有一个传入消息队列(公会、区域、实例、拍卖......),所以我们有 2,000,000 个队列。一名玩家一次将收听 1-10 个队列。每个队列平均每秒可能有 1 条消息,但某些队列将具有更高的速率和更多的侦听器(例如,级别实例的“实体位置”队列)。让我们假设系统排队延迟不超过 100 毫秒,这对于轻度面向动作的游戏(但对于 Quake 或 Unreal Tournament 之类的游戏)来说是可以的。

从其他系统来看,我知道在单个 1U 或刀片服务器上为 10,000 个用户提供服务是一个合理的期望(假设没有其他昂贵的东西,比如物理模拟或诸如此类的东西)。

因此,对于交叉开关集群系统,客户端连接到连接网关,连接网关又连接到消息队列服务器,我们将获得每个网关 10,000 个用户和 100 个网关机器,每个队列服务器有 20,000 个消息队列和 100 个队列机器。同样,仅用于一般范围。每台 MQ 机器上的连接数量很少:大约 100 个,用于与每个网关通信。网关上的连接数会高很多:客户端 10,100 + 到所有队列服务器的连接。(最重要的是,为游戏世界模拟服务器或其他东西添加一些连接,但我现在正试图将其分开)

如果我不想从头开始构建它,我将不得不使用一些现有的消息传递和/或排队基础设施。我能找到的两个开放协议是 AMQP 和 XMPP。XMPP 的预期用途有点像这个游戏系统所需要的,但是开销非常明显(XML,加上详细的存在数据,加上必须在上面构建的各种其他通道)。AMQP 的实际数据模型与我上面描述的更接近,但所有用户似乎都是大型企业型公司,工作负载似乎与工作流相关,而不是实时游戏更新相关。

有没有人有这些技术或其实现的白天经验,你可以分享?

0 投票
1 回答
11555 浏览

python - 如何在运行任务之前设置 Celery 以调用自定义初始化函数?

我有一个 Django 项目,我正在尝试使用 Celery 提交任务以进行后台处理(http://ask.github.com/celery/introduction.html)。Celery 与 Django 集成得很好,我已经能够提交我的自定义任务并返回结果。

唯一的问题是我找不到在守护进程中执行自定义初始化的合理方法。在开始处理任务之前,我需要调用一个会加载大量内存的昂贵函数,而且我不能每次都调用该函数。

以前有人遇到过这个问题吗?任何想法如何在不修改 Celery 源代码的情况下解决它?

谢谢

0 投票
3 回答
1274 浏览

.net - AMQP 生产准备好了吗?

我想使用 AMQP 加入两个服务,一个是用 C# 编写的,另一个是用 python 编写的。我预计每秒有大量消息。

  • 是否有任何可用于生产的 AMQP 代理?
  • python & .net 绑定是否足够好?
0 投票
2 回答
3335 浏览

python - 多个消费者和生产者连接到一个消息队列,这在 AMQP 中可能吗?

我想创建一个能够 OCR 文本的进程场。我考虑过使用由多个 OCR 进程读取的单个消息队列。

我想确保:

  • 队列中的每条消息最终都会被处理
  • 工作或多或少平均分配
  • 图像将仅由一个 OCR 进程解析
  • OCR 进程不会一次收到多条消息(因此任何其他免费的 OCR 进程都可以处理该消息)。

使用AMQP可以做到吗?

我打算使用python和rabbitmq

0 投票
4 回答
8989 浏览

java - 独立 Apache Qpid (amqp) Junit 测试示例

有没有人有在独立junit 测试中使用 Apache Qpid 的示例。

理想情况下,我希望能够动态创建一个队列,我可以在我的测试中放置/获取消息。所以我没有在我的测试中测试 QPid,我将为此使用集成测试,但是对于测试处理 msgs 的方法非常有用,因为它必须模拟大量服务。

0 投票
3 回答
1163 浏览

python - 如何在 AMQP 的 python 客户端中使用监听 basic.return

我想确保我的消息已发送到队列。

为此,我将强制参数添加到 basic_publish。basic.return如果我的消息没有成功发送,我还应该怎么做才能收到消息?

我不能channel.wait()用来收听,basic.return因为当我的消息成功传递时,该wait()功能将永远挂起。(没有超时)另一方面。当我不打电话时,即使消息没有送达,遗嘱也会保持空白channel.wait()channel.returned_messages

我使用py-amqplib的是 0.6 版。

欢迎任何解决方案。