【问题标题】:Querying AWS SQS queue URL using Java SDK使用 Java SDK 查询 AWS SQS 队列 URL
【发布时间】:2018-10-02 10:13:35
【问题描述】:

AWS Java SDK for SQS 的大多数操作都需要队列 url。

给定一个队列名称,可以使用GetQueueUrl操作查询队列url。

AmazonSQS客户端是自动缓存这个操作的结果,还是由应用缓存队列url以避免重复查询?

【问题讨论】:

  • AWS 开发工具包的下一个版本可能会改变任何答案。如果您查看the Maven Repository,您会发现发布非常频繁(9 月发布了 19 个版本 - 几乎每个工作日发布一个)。在你的代码中保留一个字符串有那么难吗?
  • @stdunbar 我在一家公司工作,该公司拥有相当大的代码库,由许多开发人员维护,其中一些是绝对新手。我注意到代码中的几个地方,开发人员每次执行队列操作时都会内联调用AmazonSQS.getQueueUrl()。乍一看这似乎效率很低,但也许通过缓存它不是问题。

标签: amazon-web-services amazon-sqs aws-sdk-java-2.0


【解决方案1】:

如果我们查看AWS Java SDK code on GitHub,我们会看到getQueueUrl() 触发了通常的客户端准备钩子(似乎不包括缓存),然后立即跳转到发出请求的executeGetQueueUrl(),同样没有缓存。有趣的是,似乎确实有一个 URI cachedEndpoint = null; 似乎没有在任何地方使用(也许我遗漏了什么?)。

退后一步,这是有道理的。在 SDK 上自动缓存响应对于使用它的应用程序来说可能是危险的,因此缓存或不缓存的决定留给它所属的应用程序逻辑。因此,如果您需要缓存响应,则由您决定要缓存多长时间以及在何处/如何存储它。

【讨论】:

  • 如果服务器提供适当的缓存控制标头,HTTP 级别的自动缓存可能是合理的。
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2017-09-15
  • 1970-01-01
相关资源
最近更新 更多