gpt4 book ai didi

java - 使用 dynamodb 的 tomcat session 管理器

转载 作者:行者123 更新时间:2023-11-28 23:21:25 25 4
gpt4 key购买 nike

我正在尝试将 tomcat session 管理器与 dynamoDB 一起使用。

我引用了这份 aws 指南 http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-tomcat-session-manager.html .

他们在指南中提到我们必须使用

    <Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager"
awsAccessKey="myAccessKey"
awsSecretKey="mySecretKey"
createIfNotExist="true" />
</Context>

因此,如果我不提供任何目标区域,默认情况下将选择 us-east-1(因为它硬编码在 aws 文档中提到的 .jar 文件中)。如果我指定任何区域,它将选择该区域。但我在多个地区都有我的应用程序,并且希望每个地区都有单独的发电机实例。至于多个区域, session ID 不是唯一的,所以我不能对所有区域使用相同的发电机实例。

如何实现,我们将不胜感激。

最佳答案

最好创建多个 DyanoDB 客户端,每个区域一个。您应该使用一些 config/prop 文件,其中包含不同的 aws 访问 key 、 secret 和配置,您可以根据这些文件在应用程序启动时创建客户端。然后根据你的业务逻辑使用它。

例如:- 我在我的应用程序中使用 ProfileCredentialsProvider 和下面的配置文件,它使用多个 dynamoDB 客户端。

# AWS DynamoDB setting
mumDynamoDB:
# profile name of aws IAM role which has access to dynamoDB
profileName: mumdynamoDBdev
region: ap-south-1
OrgonDynamoDB:
# profile name of aws IAM role which has access to dynamoDB
profileName: OrgdynamoDBdev
region: us-west-2

下面的一段代码根据地区和个人资料创建客户。

public static DynamoDB getDocClient(String profileName, String region) {
// http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html new way of
// creating all the aws clients.
// thread safe impl
AmazonDynamoDB amazonDynamoDBClient = AmazonDynamoDBClientBuilder.standard()
.withRegion(region)
.withCredentials(new ProfileCredentialsProvider(profileName)).build();
docClient = new DynamoDB(amazonDynamoDBClient);

return docClient;
}

然后在应用中,根据您的需求,您可以使用合适的客户端。

关于java - 使用 dynamodb 的 tomcat session 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43048403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com