问题标签 [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 回答
2160 浏览

architecture - AMQP 是否适合作为机器内和机器间软件总线?

我试图了解AMQP。它看起来非常适合应用程序之间的机器间(集群、LAN、WAN)通信,但我不确定它是否适合(在架构和当前实现方面)用作一台机器内的软件总线。

是否值得拔出当前的高性能消息传递框架来用 AMQP 替换它,或者这是否会通过模糊本地和非本地通信之间的区别而落入与 RPC 相同的陷阱?

我也对使用 WAN 技术进行机器内通信的性能影响持谨慎态度,尽管这可能更多的是实现而不是架构问题。

战争故事将不胜感激。

0 投票
3 回答
3412 浏览

serialization - 为异步消息序列化对象

我正在考虑使用 AMQP(使用 qpid)来启用 Python 和 Java 服务的混合相互通信。基本的短信似乎很简单,但与我研究过的所有其他短信技术一样,它似乎停止了。除了构建即时消息应用程序之外,我认为发送字符串并不是一件特别有用的事情,但一个又一个示例演示了如何发送未格式化的文本。

我的直觉是使用 XML(反)序列化或类似的东西(JSON、YAML、协议缓冲区等),它们在两种语言中都有很好的库支持。这是最佳实践吗?如果是,人们会推荐哪种(反)序列化协议?还是我在某处遗漏了要点,并且应该很满足发送少量文本?

0 投票
2 回答
743 浏览

geolocation - 将多播传送到几个不同的地理位置

我需要在应用程序中使用一个基于逻辑 PGM 的多播地址,同时启用这样的应用程序“无缝”运行在几个不同的地理位置(例如美国/欧洲/澳大利亚)。

应用程序的吞吐量很大(每天有几百万条商业消息)和延迟要求很高,需要大量小但非常频繁地发送消息。由于某些外部延迟限制,Classic Atom pub 无法在此处工作。

我想出了几个连接这些数据中心的选项,但找不到最好的一个。我考虑过的选项是:1)通过VPN转发多播消息(VPN可以处理这么大的负载)。2) 将所有多播消息转换为“包装消息”并通过 AMQP 转发。3) 编写专门的内部网关,通过 TCP 将多播消息传送到其他两个位置。4)任何其他解决方案

我更喜欢选项 1,因为它不需要开发人员编写额外的代码。但恐怕它不会是可靠的连接。

申请此类连接是否有任何规则?

对于上述限制,关于地理配置的最佳网络配置是什么。

0 投票
5 回答
1631 浏览

ruby - 使用哪种群消息技术?

我感到有点困惑——大约 24 小时以来,我一直在考虑在我的项目中使用哪种组广播技术。

基本上,我需要的是:

  • 创建组(通过一些后端进程)
  • 任何客户端广播消息(1:N,N:N)
  • (可能)直接消息(1:1)
  • (重要)使用我自己的后端对客户端进行身份验证/授权(例如,通过某种 HTTP API)
  • 能够通过后端进程(或服务器插件)踢特定客户端

这是我将拥有的:

  1. Ruby 或 Haxe 中的后端相关进程
  2. JS+Haxe(Flash9) 中的前端——在浏览器中,理想情况下通过 80/443 进行通信,但不一定。

因此,这项技术必须在 Haxe for Flash 中易于访问,最好是 Ruby。

我一直在考虑:RabbitMQ(或OpenAMQ)、RabbitMQ+STOMP、ejabberd、ejabberd+BOSH、juggernaut(需要为它写一个Haxe lib)。

有什么想法/建议吗?

0 投票
1 回答
1304 浏览

c# - RabbitMQ C# 客户端不与 Apache Qpid Java Broker 对话

我在 Windows 机器上安装了 Apache Qpid Java 代理的 M4 版本,并使用开箱即用的配置(通过 qpid-server.bat 脚本)启动它。

我现在正在尝试使用 RabbitMQ C# 客户端库(版本 1.5.3,为 .NET 3.0 编译)将消息发布到队列;我的代码是:

基本上,我不确定要使用什么值factory.Parameters.VirtualHost以及字符串exchangeroutingKey. 我尝试了各种组合,但似乎没有任何效果 - 我最接近的是在 Qpid 服务器日志中看到以下内容:

看起来好像 Qpid 服务器正在接收消息,但不知道如何处理它。

任何关于我在客户端代码中需要什么配置值的建议(请记住我在 virtualhosts.xml 中使用默认的 Qpid 配置)将不胜感激。有关虚拟主机、交换器、队列和路由键以及 Qpid 如何将它们链接在一起的更多一般信息也将非常有用。

先感谢您,

艾伦

0 投票
2 回答
1172 浏览

cross-platform - JBoss Messaging 是否支持非 Java 客户端?

对于企业集成项目,对 J JBoss Messaging等消息代理的非 Java 访问非常有帮助。对于Apache ActiveMQGlassFish Open Message Queue产品,有许多不同的客户端实现可用,使用本机或标准协议(如Stomp)。

JBoss Messaging在问题跟踪器中有一个任务“本机实施 STOMP 协议”。然而,这个任务并没有出现在JBoss Messaging 路线图中。

是否有其他选项可以使用非 Java 客户端连接到 JBoss Messaging?

编辑:JBoss Messaging 将在版本 2 中支持 AMQP

0 投票
3 回答
1141 浏览

ruby - 与框架无关的 Ruby 后台工作程序库的最佳选择是什么?

我正在使用 Ruby 和 Sinatra 为 iPhone 应用程序构建一个简单的食谱搜索引擎,并将 RabbitMQ 用于我的消息队列。我环顾四周,为后台进程找到了许多不同的实现选择,但其中大多数要么实现自定义消息队列算法,要么作为 Rails 插件运行。

就可以与 RabbitMQ 很好地配合使用的与框架无关的高质量工作库而言,有哪些内容?

在编写工作代码时,是否有任何我应该牢记的最佳实践,除了显而易见的:

0 投票
9 回答
52899 浏览

.net - 从客户端检查 RabbitMQ 队列大小

有谁知道是否有办法从客户端应用程序检查 RabbitMQ 队列中的消息数量?

我正在使用 .NET 客户端库。

0 投票
2 回答
7239 浏览

python - 我应该在 Django 项目中使用 Celery 还是 Carrot?

我有点困惑我应该使用哪一个。我认为任何一种都可以,但是一种比另一种更好或更合适吗?

http://github.com/ask/carrot/tree/master

http://github.com/ask/celery/tree/master

0 投票
1 回答
14326 浏览

java - 您将如何编码地图使用协议缓冲区?

我正在尝试使用协议缓冲区进行消息序列化。

我的消息格式应该包含 Map< String, Object > 条目...但是如何编写 .proto 定义?

据我所知,Protocol Buffers 没有内置的 Map 类型。我可以使用重复字段来模拟它。但我遇到的最大问题是,您需要定义所有类型。我希望我的消息灵活,所以我不能指定类型。

有任何想法吗?