java - 如何使用AWS SQS和SNS向网站发送通知消息?

标签 java amazon-web-services amazon-sqs amazon-sns


我的网站中有一个电子邮件系统,到目前为止,无法在我的网站中向用户显示通知。除非用户登录电子邮件客户端,否则他们不会知道自己已收到消息。


我可以借助 AWS SQS 和 SNS 来完成此任务吗?作为一个网站,有很多注册用户。他们将向任何用户发送消息,并表示当电子邮件收件人处于 Activity 状态并登录网站时,我需要显示通知。如果用户处于离线状态,我只需要在他们登录时在页面标题上显示这些消息。我怎样才能做到这一点?

我尝试在 AWS 控制台 (SQS) 中创建消息队列,并从 SQS 管理控制台订阅 SNS 主题的队列。我可以尝试向此队列发送消息,但我不确定如何将唯一的用户相关消息作为通知分发?


如果您对此有任何建议,请告诉我?

我使用的是JAVA

最佳答案

SNS 和 SQS 都不适合您的用例。我建议将消息​​放入某种数据存储中,并在页面加载时查询该数据存储以确定是否应该显示通知。

选项包括:

  1. 一个 SQL 数据库(如果您已经有一个,否则这是一个昂贵的选择)
  2. DynamoDB(高度可用且速度非常快,但有点昂贵)
  3. SimpleDB(高度可用,有点慢,无法处理太多吞吐量,查询能力良好,价格便宜)
  4. S3(高度可用,有点慢,吞吐量高,查询能力差,最便宜的选择)

如果您不熟悉 AWS 堆栈,您可以看看 Azure Table,它可能比其他任何一个都稍微更好地满足您的需求。

关于java - 如何使用AWS SQS和SNS向网站发送通知消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699843/

相关文章:

java - 在 weblogic 12c 上部署时创建 Azure 存储容器失败

python - ECS 任务只能从 SQS 队列中挑选一条消息

php - 如何在 PHP 中获取 AWS EC2 实例 ID

amazon-web-services - 使用 AWS Java SDK 检查云形成堆栈是否存在的最佳方法?

amazon-web-services - AWS队列的限制

java - 如何在打印流中创建文件夹?

java - 带过程输出的二分查找

java.lang.IllegalStateException : The path to the driver executable must be set by the webdriver. gecko.driver 系统属性与 Selenium GeckoDriver

python-3.x - SQS 一遍又一遍地触发 Lambda 函数,为什么?

python - 使用 SQS 撤销 Celery 任务