Я запускаю узел цепочки блоков (для тех, кто не знает, цепочки блоков по сути синхронизируют экземпляры db через протокол консенсуса). На данный момент у меня есть веб-сервер, который напрямую общается с базой данных внутри узла.
Однако в ожидании более высокой нагрузки я хотел бы поставить балансировщик нагрузки перед БД (чтобы я мог добавлять больше узлов, сколько мне нравится, за балансировщиком и таким образом масштабировать).
Я размещаю узел на AWS (только экземпляр EC2). Я надеялся, что смогу просто добавить балансировщик нагрузки класса AWS перед экземпляром EC2, но не нашел никаких руководств о том, как это сделать.
Вопрос: Можно ли это сделать (в той или иной форме) и как это сделать. Опять же, цель состоит в том, чтобы иметь одну строку подключения, к которой мой уровень веб-службы может подключиться, и которая за кулисами будет направлять запрос в несколько экземпляров db.
Заранее спасибо.
Изменить: в принципе, просто предположите, что у меня есть несколько экземпляров db, которые синхронизируются сетью блокчейна. Мне нужно только выполнить чтение экземпляров (записи отправляются в сеть для согласования, прежде чем они будут переданы в базу данных по протоколу). Мне нужно найти способ сбалансировать чтение нескольких экземпляров (которые, опять же, гарантированно будут синхронизированы).
Базы данных балансировки нагрузки сложнее, чем балансировка нагрузки, говорят веб-серверы без сохранения состояния. Вы не можете автоматически балансировать нагрузку в базе данных с помощью функций AWS. Основной способ повысить производительность базы данных - использовать более крупный экземпляр или выделить больше ресурсов ввода-вывода.
Amazon RDS использует концепцию "читать реплику". Они используют собственную репликацию, чтобы синхронизировать еще одну дополнительную базу данных с главной. Ваше приложение должно быть достаточно умным, чтобы использовать правильную базу данных, главную для записи или реплику для чтения.
Чтобы понять архитектуру баз данных и то, как она будет взаимодействовать с вашим вариантом использования, вам нужно будет немного почитать. Вы не сказали нам достаточно, чтобы дать вам окончательный ответ. Эта статья расскажет вам о кластеризации PostgreSQL и тому подобном.
Я предлагаю вам в качестве первого шага масштабировать до более крупного экземпляра, когда несколько клиентов используют эту базу данных. Затем вам придется масштабировать и каким-то образом поддерживать синхронизацию баз данных.
В AWS вы можете переписать свое приложение для использования DynamoDB, хорошо масштабируемая база данных без sql. Это имеет тенденцию быть огромным изменением.
Если вы отредактируете свой вопрос, чтобы дать более подробную информацию о том, что вы делаете, вы можете получить дополнительную помощь.