1

我想在我的应用程序中使用 Amazon SQS 对来自不属于我的其他外部系统的请求进行排队。

这样做的更好方法是什么,直接公开 SQS 队列和所需的消息格式或发布对请求进行排队的 Web 服务 (WCF)。

我还读到 SQS 对于单次访问来说相对较慢,但它可以轻松处理来自不同客户端的大量并发访问,我说得对吗?

最佳托马斯

4

1 回答 1

2

这在很大程度上是一个偏好问题,并且在一定程度上取决于您的情况。但我的建议是用你自己的网络服务包装它。

构建您的 Web 服务允许您执行验证、限制、模式版本控制等操作。例如,您可以拒绝无效消息,并立即向发送者提供同步反馈。如果外部系统直接发布到您的队列,那么无效消息将成为您的问题而不是他们的问题,如果您修改架构并想要拒绝旧架构消息,那么您要么必须删除它们,要么设置一个单独的反向通道来向发布者反馈信息。这给您的系统增加了不必要的复杂性。如果需要,拥有 Web 服务甚至可以让您稍后切换到其他排队技术。

但是构建自己的 Web 服务也有缺点:您自己的服务是否能够以相同的低延迟处理与 SQS API 相同的负载?它不会像 SQS 那样无限扩展,那么您需要对负载变化做出多大的响应?您是否拥有管理单独服务的资源?这不仅仅是授予客户的 AWS 账户发布到您的队列的权限。

如果您对所涉及的额外工作感到满意,并且想要一个更加面向未来的系统,恕我直言,构建 Web 服务包装器是值得的。

于 2013-06-25T21:38:08.057 回答