Вероятно, у вас возникнут проблемы с SimpleDb из-за его «возможной согласованности» при записи. Это означает, что когда вы пишете данные, они не гарантированно возвращаются в запросе, выполненном сразу после. Я слышал, что через пару секунд вы в безопасности, но вам нужно кодировать систему, чтобы учесть это.
Это немного смягчено с введением условных путов, которые гарантируют, что не будет никаких потерянных обновлений, если есть одновременные записи. Модель конечной согласованности может усложнить кодирование простых вещей, таких как счетчики и очереди.
Здесь - пример увеличения счетчика, реализованного в Java с использованием AWS SDK. Обратите внимание на метод nextValue
:
while (!done) {
Клиенты, по сути, повторяют попытки до тех пор, пока их позиции не будут тщательно обработаны. Это не масштабируется!