roe*_*gol 6 resources amazon-web-services amazon-dynamodb
考虑到这段代码:
QuerySpec spec = new QuerySpec()
.withKeyConditionExpression("#1 = :v1")
.withNameMap(new NameMap().with("#1", "tableKey"))
.withValueMap(new ValueMap().withString(":v1", "none.json"));
//connect DynamoDB instance over AWS
DynamoDB dynamoDB = new DynamoDB(Regions.US_WEST_2);
//get the table instance
String tableName = "WFMHistoricalProcessedFiles";
Table table = dynamoDB.getTable(tableName);
ItemCollection<QueryOutcome> items = table.query(spec);
//getting over the results
Iterator<Item> it = items.iterator();
Item item = null;
while (it.hasNext()) {
item = it.next();
System.out.println(item.toJSONPretty());
}
Run Code Online (Sandbox Code Playgroud)
在使用 DynamoDB 进行任何查询或扫描时,如上例所示。
是否确实需要调用shutdown()才能关闭连接?
文档似乎很清楚。
关掉
void shutdown()关闭此客户端对象,释放任何可能保持打开状态的资源。这是一个可选方法,调用者不会调用它,但是如果他们想显式释放任何打开的资源,可以调用它。客户端关闭后,不应再使用它来发出任何请求。
但要澄清您具体询问的内容:
为了关闭连接?
DynamoDB 并不完全是“连接”。当请求被发送时,它通过 HTTPS 无状态地访问......所以你的代码所说的// connect DynamoDB instance over AWS,这真的不准确。您正在构建一个对象,该对象直到您调用table.query().
该连接稍后可能会在短时间内保持活动状态以供重用,但即使是这样,它也不会从任何有意义的意义上“连接到”DynamoDB。充其量,它连接到 AWS 内部的前端系统,该系统正在监视下一个请求,并且如果该请求在语法上有效且经过授权,则可能会将其转发到 DynamoDB。
但是,此空闲连接(如果存在)不会以会降低您的应用程序或访问同一 DynamoDB 表的其他人的性能的方式消耗任何 DynamoDB 资源。
当然,好的做法表明,如果您可以选择清理某些东西,那么这样做可能是一个好主意,但这显然是可选的。
| 归档时间: |
|
| 查看次数: |
3293 次 |
| 最近记录: |