问题标签 [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 投票
4 回答
11039 浏览

message-queue - 如何在 RabbitMQ 中撤回消息?

我在 RabbitMQ 上有一个类似于作业队列的东西,并且在请求取消作业时,我想撤回尚未开始处理的任务(它们的消息尚未被确认),这对应于撤回这些消息来自它们被路由到的队列。

我还没有在 AMQP 或 RabbitMQ API 中找到这个功能;也许我搜索得不够好?还是我必须使用解决方法(这并不难,但仍然如此)?

0 投票
1 回答
1280 浏览

heroku - Heroku 的 AMQP 将如何工作?

我看到他们很快就会有一个 AMQP 插件。

我即将学习如何将 AMQP 与 RabbitMQ 一起使用。我想那个插件不处理 RabbitMQ。

AMQP 不只是一个协议。他们是否使用任何 AMQP 代理,例如 RabbitMQ 或 ActiveMQ?

0 投票
1 回答
952 浏览

amqp - QPID 使用高级 API 更精细的 AMQP 控制?

起初我认为 QPID 文档很棒,但现在我发现它令人困惑。我正在使用 QPID-0.6 的 C++ API 和qpid::messaging命名空间(我看到我可以使用qpid::client访问低级 AMQP ,但这不是我现在想要的)。

使用 AMQP,我会在发送消息之前声明一个类型的交换,声明一个队列和一个绑定。使用 QPID,我可以给发件人一个地址以发送到。是否有任何带有地址示例的文档,它们的作用相同吗?(创建各种交换、队列和创建绑定)。

值得注意的是,我在网上找到了一个地址语法,其中包括节点、链接、x-declare 和 x-binding 字段。然而,挖掘 0.6 代码并没有找到,而是看到了更简单的语法(带有名为 node-properties 和 x-properties 的字段),并且它的文档不是太简单,也缺少任何示例。

在examples/messaging/client.cpp中,这是我发现的最多的: #response-q; {create:always, type:queue, node-properties:{ x-properties:{auto-delete:true}}}

  • 使用这种更简单的地址语法是否仍然可以设置各种类型的交换、队列和绑定?

  • 或者迁移到 0.6 之后的东西会更可取?(如果它足够稳定,并且语法不那么讨厌)

  • 或者我的方法是错误的,我不应该为与高级 API 的交换预先创建和绑定接收者队列?

谢谢你。

0 投票
1 回答
286 浏览

python - 使用 Celery 实现 AMQP

我想听听你对 celery 使用的不同 AMQP 实现的优点的看法。我特别关注消息优先级和作业队列大小。你怎么认为?

0 投票
1 回答
3029 浏览

django - 没有 amqp 服务器的 django-celery (rabbitmq)

我正在使用 celery 进行分布式任务处理。我想在网络主机上部署我的工作,只是为了展示我的项目的工作。那么我怎样才能让 djcelery 使用数据库(sqlalchemy)作为 django 而不是 rabbitmq 或其他 amqp 服务器的后端。

0 投票
1 回答
1160 浏览

language-agnostic - 可以使用面向消息的中间件代替 MPI 来协调分布式计算吗?

我所说的面向消息的中间件是指高级消息队列协议等技术。

显然 AMQP 是与 MPI 不同的野兽,但我认为以主从方式运行的分布式内存计算可以使用 AMQP 轻松实现,让 AMQP 在从属完成时处理公平的工作分配,而不是管理队列明确地在主人身上工作。

AMQP 的额外好处(如果您有数千台机器一起工作)将是单台机器的死亡不会在MPI_Bcasts 处停止计算的进度,因为 AMQP 可以简单地使用扇出而MPI_Bcast不是阻塞整个计算的进度。

有没有在分布式计算中用于任务协调的 AMQP 示例?

更新: Gearman为容错分布式计算提供了一种非常好的方法。

0 投票
1 回答
3238 浏览

java - Apache qpid 队列网址

我正在尝试了解有关 apache Qpid 如何工作的更多信息,我通过以下官方 svn 的示例来做到这一点:

http://svn.apache.org/repos/asf

我在看:

http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/Hello.java

它使用此配置/属性文件:

http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/hello.properties

有人可以告诉我配置中的这条线代表什么:

一世。我假设 guest:guest 将是连接到 qpid 时使用的凭据

ii. 我假设 localhost 和 5672 应该是主机名:端口

我的问题是test?代表什么?这是队列的名称还是它是什么?是否可以直接在这个 amqp url 中指定队列名称?

0 投票
2 回答
671 浏览

pylons - 有没有人成功地将芹菜与塔一起使用

我有一个基于 pylons 的 webapp,我很想使用 celery + rabbitmq 来完成一些任务。我已经查看了 celery-pylons 项目,但我没有成功使用它。

我对 celery 的主要问题是:我将 celeryconfig.py 文件放在哪里,或者是否有任何其他方式来指定 celery 选项,例如。BROKER_HOST 等,来自 pylons 应用程序(使用 django-celery 时,可以将选项放在 django settings.py 文件中)。

基本上,我研究了 2 个选项:使用 celery 作为独立项目和使用 celery-pylons,两者都没有取得多大成功.. :(

在此先感谢您的帮助。

0 投票
1 回答
124 浏览

apache - 对高度可扩展和模块化的分布式服务器端架构的思考

我的并不是一个真正的问题,它更多的是征求意见 - 也许这甚至不是发布它的正确位置。不过,这里的社区消息灵通,尝试一下也无妨……

我正在考虑如何创建一个高度可扩展的,尤其是高度模块化的后端架构。例如,一个大型站点的整个后端生态系统,它有可能在未来发展成一个大型站点。

这将需要非常高度的关注点分离,以至于不仅可以(例如)替换底层数据库(即从 Oracle 到 MySQL),而且可以替换实际类型的数据库(ed SQL 到 KV,或反之亦然)。

我设想每个子系统在后端生态系统中公开自己的 API 的情况。通过这种方式,API 可以保持不变,而实现可能会随着时间而改变(甚至是根本性的)。

系统必须是异构的,因为它不依赖于特定的语言。它必须能够容纳使用不同语言的模块或整个子系统。

然后我突然想到,我想象的只是网络本身的架构。

所以这是我的讨论点:除了使用(主要)基于文本的协议的开销之外,是否有任何压倒一切的原因不应该以我描述的方式实现复杂的后端架构,或者我是否有一些强有力的理由使用 Twisted、AMQP、Thrift 等通信协议时缺少 m?

更新:在@meagar 发表评论之后,我或许应该重新提出这个问题:使用非常简单、灵活且易于理解的架构(即所有功能公开为一系列 RESTful API)的明显优势是否足以弥补明显的性能损失在后端上下文中使用此架构时会发生什么?

0 投票
1 回答
631 浏览

c# - RabbitMQ 消息接收比发布慢

我们在 windows 服务器上运行最新版本的 RabbitMQ 2.1.1,并使用 .Net 客户端。我们正在运行一个测试如下:向transcient nondurable fanout exchange发布500000条消息,客户端使用自动删除队列。只有一个队列。发布者每秒发送约 10K 条消息。发送完所有消息后,它会断开连接。rabbitmqctl 工具显示队列大小为 0,但接收者仍在接收消息几秒钟,它只收到了 60% 的消息。您知道为什么会有这样的延迟以及如何将其最小化吗?

干杯!