如何解决sqs 队列有时不接收来自 sns 的消息
我有一个在用户执行操作时广播事件的主题。有 2 个队列订阅了这个主题。但是他们在 3-4 次中只收到一次消息。有时两个主题都没有收到消息。有时只有一个人收到,有时两个人都收到。它在 4 周前开始发生。
到目前为止我尝试过的解决方案:
-
我重新检查了权限和政策。一切似乎都对。 (如果这是问题,那么我根本不应该收到消息)
-
我检查了那些相同的队列是否正在某处运行,这些队列在生产服务器接收消息之前从队列中接收和删除消息
-
我查看了 aws 论坛,到处都是堆栈溢出
主题的传递重试策略:
{
"http": {
"defaultHealthyRetryPolicy": {
"numRetries": 3,"numNoDelayRetries": 0,"minDelayTarget": 20,"maxDelayTarget": 20,"numMinDelayRetries": 0,"numMaxDelayRetries": 0,"backoffFunction": "linear"
},"disableSubscriptionOverrides": false
}
}
主题访问策略:
{
"Version": "2008-10-17","Id": "__default_policy_ID","Statement": [
{
"Sid": "__default_statement_ID","Effect": "Allow","Principal": {
"AWS": "*"
},"Action": [
"SNS:GetTopicAttributes","SNS:SetTopicAttributes","SNS:AddPermission","SNS:RemovePermission","SNS:Deletetopic","SNS:Subscribe","SNS:ListSubscriptionsByTopic","SNS:Publish","SNS:Receive"
],"Resource": "arn:aws:sns:us-west-2:********:*****_******_*******","Condition": {
"StringEquals": {
"AWS:SourceOwner": "*********"
}
}
}
]
}
队列的访问策略:
{
"Version": "2008-10-17","Statement": [
{
"Sid": "__owner_statement","Principal": {
"AWS": "arn:aws:iam::********:root"
},"Action": "SQS:*","Resource": "arn:aws:sqs:us-west-2:********:***********_*******"
},{
"Sid": "topic-subscription-arn:aws:sns:us-west-2:********:*****_******_*******","Action": "SQS:SendMessage","Resource": "arn:aws:sqs:us-west-2:********:***********_*******","Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:sns:us-west-2:********:*****_******_*******"
}
}
}
]
}
如果需要更多信息,请告诉我。我将获得 aws 高级支持以找到问题。在那之前我想在这里发一次。感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。