[英]tomcat session manager using dynamodb
我正在嘗試對dynamoDB使用tomcat會話管理器。
我正在從該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文件中進行了硬編碼)。 如果我指定任何區域,它將選擇該區域。 但是我在多個區域中都有我的應用程序,並且希望每個區域都有單獨的dynamo實例。 至於多個區域的會話ID並非唯一,因此我不能對所有區域都使用相同的dynamo實例。
如何做到,任何幫助將不勝感激。
最好創建多個DyanoDB客戶端,每個區域一個。 您應該使用一些config / prop文件,該文件包含不同的aws訪問密鑰,密鑰和配置,並基於它們在應用程序啟動時創建客戶端。 然后根據您的業務邏輯使用它。
例如: -我使用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;
}
然后在應用程序中,根據您的要求,您可以使用適當的客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.