问题标签 [amazon-mq]
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.
amazon-web-services - 更改已在运行的 Amazon MQ 代理的子网
我使用 ActiveMQ 创建了一个 Amazon MQ 代理,但我刚刚出错并选择了错误的子网。问题是通过 AWS 控制台我似乎无法编辑子网参数。它只允许我编辑安全组,但不能编辑子网参数。
代理只是一个实例。
有没有办法在已经运行的代理上编辑子网参数?
amazon-web-services - RabbitMQ 交付确认超时解决方法:pika 或编辑 Amazon-MQ 托管集群的 RabbitMQ 配置文件
背景:最近对 RabbitMQ 3.8.x 的更改创建了30 分钟的交付确认超时。根据文档,这可以通过设置 consumer_timeout 值在 rabbitmq.conf 文件中覆盖。
我的问题:我正在使用 pika 客户端库,需要 30 多分钟来处理我的工作队列中的每条消息。我正在通过 AWS Amazon-MQ 使用托管 RabbitMQ 集群,直到几天前才出现问题,但现在PRECONDITION_FAILED - delivery acknowledgment on channel 1 timed out. Timeout value used: 1800000 ms
在我的日志中收到消息。我的集群是为自动次要版本更新而设置的,所以这是我对这些更改如何发生的假设。
我知道托管服务的目的是向用户隐藏所有这些设置细节,但当然,现在我需要更改其中一个。我发现我可以通过 rabbitmqadmin CLI 与远程集群进行通信以执行列出队列之类的任务,但我仍在寻找一种远程编辑底层配置文件的方法。我的集群的唯一信息是主机(形式为b-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mq.us-east-1.amazonaws.com)、用户名和密码。有谁知道这是否可能?我是各种 CLI 工具(例如 rabbitmqctl 和 rabbitmq-diagnostics)的新手,因此我们将不胜感激。
有没有办法通过库或类似的解决方法为 pika 用户设置 consumer_timeout 值?我希望 Channel.basic_consume() 函数可能有一个参数,但我也明白这可能是一个集群设置,而不是可以通过消费者设置的东西。
第一次在这里提问,所以我非常感谢任何关于我是否提供了足够信息的帮助和反馈。
java - RabbitMQ 传递确认超时
我正在通过 AWS Amazon-MQ 使用托管 RabbitMQ 集群。如果消费者快速完成他们的工作,那么一切正常。但是,根据少数情况,很少有消费者需要超过 30 分钟才能完成处理。在这种情况下,RabbitMQ 会删除消费者并使相同的消息在队列中再次可见。因此,另一个消费者拿起它并开始处理。它正在循环中发生。因此,同样的交易再次被执行,我也失去了消费者。我没有使用任何AcknowledgeMode,所以我相信它默认是 AUTO 并且有 30 分钟的限制。有什么方法可以增加 AUTO 模式的 Delivery Acknowledgement Timeout 吗?或者请让我知道是否有人对此有任何其他解决方案。
c# - AWS RabbitMQ 没有一个端点是可访问的 C#
我正在学习使用 RabbitMQ,我正在 Visual Studio for Mac 上创建一个 C# 控制台项目。
我在 Amazon AWS 上创建了一个 RabbitMQ 服务器,但是每次我尝试连接时都会收到错误“没有一个端点可以访问”;这是我的代码:
关于我为什么无法访问 AWS 的任何想法?
node.js - 延迟 ActiveMQ AMQP 1.0 的消息传递,_without_ JMS
为了澄清标题:我使用的是 ActiveMQ 5.15.15(不是 Artemis 引擎),并且我使用的是没有官方 JMS 库的 AMQP 1.0。更具体地说,我使用的是 AmazonMQ 版本,它将很快升级到 5.16.2。如果需要,我可以强制升级。
我正在使用一个AMQP 1.0 兼容库(rhea),到目前为止它为我们提供了很好的服务,但我没有找到任何关于如何让 ActiveMQ 的重新交付插件与我的库一起使用的文档。库维护者也不知道它是如何通过 ActiveMQ 公开的。
尽管尝试添加各种标头、传递注释、消息注释或应用程序属性,但我无法让重新传递插件工作。我schedulerSupport="true"
的代理元素中有服务器配置。
这些是我尝试过的键,值是数字。例如,30000
在允许消费者/订阅者看到队列中的消息之前的 30 秒。我在各种文档中看到了它们,尝试它们并没有什么坏处。
AMQ_SCHEDULED_DELAY
x-opt-delivery-delay
_AMQ_SCHED_DELIVERY
我还release
收到了来自客户端的消息,这意味着它无法传递(还将一个值传递给代理失败并增加尝试传递计数)。虽然交付尝试的数量增加了,但延迟和指数退避似乎并没有在经纪人层面发挥作用。
我看到 STOMP 协议在发布时允许使用标头,这允许更清楚地设置选项。但是,除非这样做有意义,否则我不想切换所有内容。
我还看到了另一种通过 REST API 将延迟消息作为主题发送的功能,但我不确定这是否旨在成为生产用例。
所以现在,我要么在看:
- 将消息在内存中保留一段时间,并在延迟后尝试重新发布或释放它
- 调查STOMP,看看redelivery插件是否适用于它
但我希望有人知道在哪里实现这一点。
我的 redeliveryPolicy 是基本的:
更新
我正在使用 auth 插件,并且有一个条目似乎是用于内置进程的。我认为这来自示例/默认配置。快速搜索似乎没有很多关于此的文档。我可以尝试向其他用户开放访问权限,但在当前设置下,每次更新/重新启动最多可能需要 15 分钟。
评论澄清
- 我的主要目标是延迟重新传递,因此消费者不会看到被放回队列 n 秒内的失败消息。
- 我从没有特殊的标题/属性/注释+重新交付插件开始,这也不起作用。
rabbitmq - 如何从 amazon mq 的 rabbit mq setup 访问“rabbitmqctl”
我已经使用 Amazon MQ 服务设置了 Rabbit MQ 服务器。我可以通过 URL 访问其基于 Web 的 GUI。有没有办法可以访问这个实例的“rabbitmqctl”,这是 Rabbit MQ 提供的命令行工具?
lambda - 发生错误时,MQ 触发器会调用 66 次 lambda
我正在使用亚马逊 MQ。我有一个 lambda,它通过 MQ 触发器使用来自代理的消息。但是,当消息无效并且 lambda 引发错误时,MQ 会调用 lambda 66 次。我尝试更改 Amazon MQ 代理中的重新传递策略,但没有帮助。代理配置不影响 MQ 触发器的重新传递策略。如果 MQ 触发器出错,是否可以减少重试次数?
amazon-web-services - AWS MQ 触发器自动禁用
我部署了一个 AWS Lambda,它在使用 Amazon MQ 触发器将消息排入 RabbitMQ 队列时触发。虽然这通常有效,但有时 MQ 触发器会被禁用,需要手动重新启用才能正常工作。这些是附加到 lambda 角色的一些相关策略。
如何解决这个问题?任何帮助深表感谢。谢谢。
amazon-web-services - Amazon Mq (RabbitMQ) 代理的 Route53 别名
我想在自定义别名下创建一个 Amazon MQ 兔子代理,例如 rabbit.mydomain.com,以便我的其他组件可以使用它而不是 AWS 提供的冗长端点名称。我读过一篇文章,其中描述了如何为此目的配置自定义域:https ://aws.amazon.com/blogs/compute/creating-static-custom-domain-endpoints-with-amazon-mq-for-兔子MQ/ . 考虑到集群部署已经有一个网络负载均衡器来处理 HA 所需的所有工作,这似乎过于复杂,尽管它似乎是 Amazon Mq 内部架构的一部分:https ://docs.aws.amazon .com/amazon-mq/latest/developer-guide/rabbitmq-broker-architecture-cluster.html。
鉴于我希望自定义名称仅由与我的代理位于同一 VPC 内的组件使用(不需要公共可用性),有没有更简单的解决方案?我可以只为 Amazon Mq 在实例化新代理时自动创建的 VPC 接口终端节点创建一个 Route53 别名,还是不够?如上篇文章所述创建自定义 LB 似乎实际上是在复制 AWS 已经完成的大部分工作。