Я разрабатываю сервер веб-приложений на AWS, который должен поддерживать высокую пропускную способность при чтении и записи. Мой босс дал мне такой высокоуровневый дизайн.
Я застрял в "Очереди записи". Команда сказала мне, что нам это нужно для повышения производительности записи, потому что у нас может быть только 1 главная реплика, в которую мы можем писать. У меня есть некоторые базовые знания об очередях сообщений, таких как SQS и RabbitMQ, но я ничего не знаю об использовании их в качестве очереди записи в базу данных.
На данном этапе у меня есть 3 вопроса:
Действительно ли с помощью этой архитектуры можно повысить производительность записи в базу данных (в отличие от записи непосредственно в мастер-реплику).
Как обрабатывать транзакции, особенно как откатывать, когда возникают ошибки при записи. Обычно мы контролируем транзакцию в коде приложения таким образом, что при возникновении ошибки вся транзакция откатывается, а сервер приложений отвечает клиенту с некоторым кодом ошибки.
Я упомянул, что исследовал использование очереди сообщений в качестве очереди записи, но я не уверен, что смотрю в правильном направлении. Может быть, уже есть какая-то другая технология, подходящая для очереди записи в БД?
В дополнение к вопросам, я считаю, что это должна быть большая тема, и хотел бы знать ресурсы, где я могу подробно изучить эту тему.