Как лучше всего настроить мой (golang) клиент, использующий DAX, для возврата к DynamoDB в случае возникновения проблем с DAX?
Во время инициализации моя служба проверяет, доступен ли DAX, и если это так, он инициирует свою конфигурацию для отправки запросов в DAX. Если DAX недоступен при запуске, он просто пропустит DAX и выполнит прямую DynamoDB.
Однако, если DAX становится недоступным, после инициализированные запросы службы начнут давать сбой. Я не верю, что DAX будет иметь 100% время безотказной работы, поэтому каков рекомендуемый способ обработки сбоев DAX после инициализации службы с помощью DAX?
Мой подход состоит в том, чтобы инициализировать как клиент DAX, так и клиент DynamoDB, и заключить все мои вызовы DAX в блоки try-catch, которые возвращаются к клиенту Dynamo.
Я использую DynamoDBMapper (на Java), и мой код выглядит так:
Object obj;
try {
obj = daxMappedClient.load(Object.class, key);
...
} catch (Exception e) { // DAX failed here
obj = dynamoMappedClient.load(Object.class, key);
...
}
Если кто-нибудь знает, как DAX справится с этим изнутри, было бы здорово узнать!
Проверьте наличие
http.StatusInternalServerError
, если запрос не соответствует и служба недоступна, если это так, то тайм-аут запроса и получение данных из Dynamodb