问题标签 [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.

0 投票
0 回答
105 浏览

amazon-web-services - AmazonMQ 仅限 5 个消费者

我使用 AmazonMQ (ActiveMQ) 作为 lambda 的 ESM。我对 lambda 本身没有并发限制,但 AmazonMQ ESM 将并发限制为 5,并且队列中的消息没有得到处理,因为它正在等待 5 个 lambda 中的 1 个完成执行。

在此处输入图像描述

我想要更高的并发性,达到数千个。如何告诉 AmazonMQ 创建更多消费者?可以使用单个使用者来管理多个并发 lambda 调用吗?

0 投票
0 回答
41 浏览

amazon-web-services - How to log message events from AmazonMQ to CloudWatch?

I want to inspect the logs of an AmazonMQ broker containing information about when a message was enqueued and with which parameters.

AWS provides two options to log activities from the AmazonMQ brokers to CloudWatch called general and audit, but none include the log entries for enqueued messages.

The ActiveMQ official documentation specifies an option called loggingBrokerPlugin, which can be set to log everything, including events when a message gets enqueued and dequeued. Still, AmazonMQ does not support this option in its configuration. I tried to add this option, but AWS sanitizes the configuration file and removes the entry.

Is there a way around this problem?

0 投票
1 回答
225 浏览

rabbitmq - 无法登录到 CDK 创建的 Amazon MQ (RabbitMQ) Web 控制台

在创建可公开访问的 Amazon MQ 实例(使用 RabbitMQ)时,我可以轻松登录到 Web 控制台。

但是,当通过 CDK 使用相同的设置和凭据创建 MQ 实例时,我无法登录到 Web 控制台。RabbitMQ 服务的唯一响应是

Cloudwatch 日志表明用户已创建,但也警告用户尝试使用无效凭据登录:

Broker 的构造如下所示:

0 投票
3 回答
293 浏览

amazon-web-services - 如何使用 API、CLI 或 Terraform 为 RabbitMQ 代理获取 AmazonMQ 节点

我正在尝试systemCpuUtilizaiton通过 Terraform 为每个 RabbitMQ 代理节点创建 AWS Cloudwatch 警报。要创建AWS Cloudwatch 警报,我需要提供AWS 文档中提到的维度(节点名称和代理) 。

因此,我希望从 AWS(通过 CLI、API 或 Terraform)获取rabbitMQ 代理节点名称

请注意:我可以在 AWS Cloudwatch 控制台中查看每个代理节点的矩阵,但不能从 API、SDK 或 CLI 中查看。

我浏览了以下链接,但没有得到任何方便的东西https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mq/index.html#cli-aws-mq https://registry。 terraform.io/providers/hashicorp/aws/latest/docs/resources/mq_broker

如果我遗漏了什么,请告诉我。

0 投票
0 回答
86 浏览

amazon-web-services - Amazon MQ - 如何以编程方式查找集群节点地址

我的拓扑如下图所示(最初发表在此博客中):

在此处输入图像描述

在这种情况下,代理是RabbitMQ。此外,NLB 节点位于与私有子网相同的可用区中的公共子网中(总共 3 对)。

我正在使用 CloudFormation 配置 RabbitMQ 代理和 NLB。

为了设置 NLB 侦听器的目标,我需要获取每个 Rabbit MQ 节点的 IP 地址。但是,我不知道如何以编程方式执行此操作。

CloudFormation 似乎没有将节点地址公开为输出。我也无法弄清楚如何使用 MQ 的 CLI 命令找到它们。它们也不会显示在 MQ 控制台中。

我可以通过检查创建的 VPC 端点或通过 EC2 网络接口搜索来手动找到它们。就我而言,这有点简单,因为集群 MQ 代理被分配给一个专用的安全组。

所以,我假设我可以利用 CLI 搜索网络接口,由 SG 过滤。但是,这真的是最好的/预期的方法吗?我想确保我不会忽略通过 CloudFormation 或 MQ CLI 查找这些地址的其他方法...

感谢您的时间和帮助,

0 投票
2 回答
412 浏览

ios - 无法使用 Swift 连接到远程 RabbitMQ 服务器

RabbitMQ在我的应用程序中使用聊天模块。它适用于本地服务器,但不知何故我无法连接到remoteRabbitMQ 服务器。当我尝试发送消息时,我不断收到此错误。

接收到的连接:<RMQConnection: 0x6000022e2eb0> disconnectedWithError: Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalizedDescription=Socket close by remote peer}

我的快速代码如下所示:

在使用本地服务器时,我设置了 uri "amqp://[username]:[password]@localhost:5672",这按预期工作。

PS:当我设置此订阅者时,我没有收到任何有关连接或任何错误消息。所以我认为它连接到服务器没有任何问题。

但是,当我从 iOS 应用程序发送消息时,后端会发布它,因此 iOS 应用程序应该会收到它。正是在这个时候,它给了我上面的错误!

编辑:尽管 C# 后端能够使用 RabbitMQ 远程服务器成功发布和订阅消息。失败的只是iOS客户端!

任何帮助,将不胜感激!

0 投票
0 回答
142 浏览

amazon-web-services - Amazon MQ 是否在集群部署模式下部署网络负载均衡器?

我正在将 Amazon MQ PaaS 服务用于具有集群模式部署的应用程序。根据文档和架构(https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-broker-architecture-cluster.html),如果是集群模式部署(三节点集群) ,来自客户端应用程序的请求必须通过网络负载均衡器。这是否意味着 AWS 在幕后部署了网络负载均衡器,因为我在使用 Amazon MQ PaaS 服务创建代理时从未看到我需要提供的任何配置

任何人都可以通过提供有关此查询的指导来帮助我吗?

0 投票
2 回答
351 浏览

rabbitmq - AWS Amazon MQ (RabbitMQ) 代理 - 找不到 IP 地址

因此,我在私有子网中通过 Amazon MQ 创建了我们的 RabbitMQ 代理,并且不能公开访问。这会生成一个 Web 控制台 URL https://xxxx.mq.us-west-2.amazonaws.com。我想创建一个 Route 53 记录名称 xxxxx.ourdomain.com 并使用它来访问代理 Web 控制台。我所做的是创建一个 CNAME 记录并使用https://xxxx.mq.us-west-2.amazonaws.com作为值/路由流量到. 问题是当我通过https://xxxxx.ourdomain.com访问它时它给了我这个。

*此服务器无法证明它是ourdomain.com;其安全证书来自.mq.us-west-2.amazonaws.com”

所以通常,我们会为我们的服务创建一个负载均衡器(我们将 ACM (ourdomain.com) 关联到附加的目标组)并使用它来创建 Route 53 A 记录。但我没有看到任何选项可以为 Amazon MQ (RabbitMQ) 执行此操作,因为它没有给我任何目标或 IP 地址。我从控制台看到了显示代理 IP 地址的文档(请参阅:https ://aws.amazon.com/blogs/compute/creating-static-custom-domain-endpoints-with-amazon-mq/ ),但我没有看到它,在 Amazon MQ 控制台和网络接口中都没有。

亚马逊 MQ 控制台

0 投票
0 回答
177 浏览

java - 无法绑定“spring.rabbitmq”下的属性

我正在尝试在 aws 中的 AmazonMQ 服务下部署RabbitMQ,并使用 terraform 将其连接到 Spring 应用程序。我可以使用带有 terraform 的 AmazonMQ 创建 Rabbit 代理,但在将其连接到 spring 应用程序时遇到问题。这是我的带有 terraform 的 Rabbit 配置。

上面的配置创建了一个代理,我可以访问 Rabbit Web 控制台。现在我尝试使用以下配置连接到 spring 应用程序:application.yml

但是当我运行它时,我得到了错误

通过构造函数参数 5 表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“rabbitConfiguration”的 bean 时出错:通过字段“rabbitProperties”表示的依赖关系不满足;嵌套异常是 org.springframework.boot.context.properties.ConfigurationPropertiesBindException:创建名为“spring.rabbitmq-org.springframework.boot.autoconfigure.amqp.RabbitProperties”的 bean 时出错:无法将属性绑定到“RabbitProperties”:prefix=spring .rabbitmq,ignoreInvalidFields=false,ignoreUnknownFields=true;嵌套异常是 org.springframework.boot.context.properties.bind.BindException:无法将“spring.rabbitmq”下的属性绑定到 org.springframework.boot.autoconfigure.amqp。

****************************** 应用程序无法启动


描述:

无法将“spring.rabbitmq”下的属性绑定到 org.springframework.boot.autoconfigure.amqp.RabbitProperties:

不知道为什么错误说输入字符串的原因是“”,但我确实将地址的值为“amqps://b-e80099d2-111-4185-be9d-111111.mq.us east-2.amazonaws。 com:5671"。

有人可以帮忙提出任何建议吗?谢谢!

0 投票
1 回答
64 浏览

java - RabbitMQ 权限不适用

我正在为特定用户设置权限,并获得:

Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'my-queue' in vhost 'myVHost' refused for user 'myUser', class-id=50, method-id=20)

我的权限包含多个队列和交换,特别是相关队列获得配置+写入+读取权限:

^first$|^second$|^my-queue$

仍然,我得到了那个错误。

即使我尝试: configure: .* write: .* read: ^my-queue$ 我收到相同的错误消息。

我花了很多时间阅读有关如何设置权限的信息,并且我有一些经验,但没有运气。

任何帮助将不胜感激。