Architecture 设计一个将向连接的用户发送消息的解决方案

Architecture 设计一个将向连接的用户发送消息的解决方案,architecture,spring-webflux,amazon-sqs,amazon-sns,google-cloud-pubsub,Architecture,Spring Webflux,Amazon Sqs,Amazon Sns,Google Cloud Pubsub,我试图找出适合我(非常)常用的用例的堆栈/解决方案。 假设我有一个同时有10万登录用户的网站。在我的5台相同的服务器中,每个服务器都有自己的会话。 我从一些外包系统接收到关于这些连接用户的事件,并基于这些事件,我想向特定客户发送消息。(不是推送通知) 此事件是在与客户端会话不同的服务器上接收的。 传递这些信息的好方法是什么 到目前为止,我想到的解决方案是: 运行连接的客户端将打开websocket的服务器 使用一些发布/订阅解决方案,如谷歌发布/订阅或AWS SNS/(+SQS?) 我宁愿使用第

我试图找出适合我(非常)常用的用例的堆栈/解决方案。 假设我有一个同时有10万登录用户的网站。在我的5台相同的服务器中,每个服务器都有自己的会话。 我从一些外包系统接收到关于这些连接用户的事件,并基于这些事件,我想向特定客户发送消息。(不是推送通知) 此事件是在与客户端会话不同的服务器上接收的。 传递这些信息的好方法是什么

到目前为止,我想到的解决方案是:

  • 运行连接的客户端将打开websocket的服务器
  • 使用一些发布/订阅解决方案,如谷歌发布/订阅或AWS SNS/(+SQS?)
  • 我宁愿使用第二个选项,一些托管解决方案,而不是运行自己的服务器。 我不确定我需要的是两者的结合,还是仅仅一个就足够了。 我不知道该怎么办。我应该为所有用户使用相同的主题吗?我应该为所有用户使用相同的队列吗?如何防止用户不阅读其他用户的消息

    通过阅读,我了解到直接向发布/订阅订阅客户端(如桌面web浏览器)不是最佳做法,因为令牌是公开的,并且可以直接订阅主题的客户端数量限制为10K(至少在谷歌上)

    谁能提出一个好的解决方案