Назад | Перейти на главную страницу

Ограничения параллелизма Google Cloud SQL / App Engine

Я использую Google App Engine для размещения своих API и постоянно сталкиваюсь с ограничением одновременных подключений к базе данных. В документации говорится, что вы можете иметь до 12 одновременных подключений на «экземпляр движка приложения» (https://cloud.google.com/sql/faq#sizeqps), но я не совсем понимаю, что это значит.

Я использую GoLang, и мое приложение является транзакционным, поэтому ограничение в 12 одновременных подключений к базе данных фактически означает менее 12 одновременных подключений API. Это действительно мало и, похоже, не согласуется с другими довольно щедрыми ограничениями Google.

Каждому отдельному процессу не требуется более одного соединения с базой данных, поэтому, если есть способ создать несколько «экземпляров», все будет в порядке. Но я не совсем уверен, что это означает и применимо ли оно ко всем объединенным службам, каждой отдельной службе, каждому обработчику и т. Д.

Заранее благодарю за любую помощь. Дэн

Экземпляр - это основной строительный блок вашего приложения App Engine и относится к машине, на которой выполняется версия вашего кода в одной из служб, составляющих ваше приложение App Engine. Одна из особенностей App Engine - возможность масштабировать приложение вверх или вниз в соответствии с потребностями. Это делается путем создания и закрытия экземпляров в соответствии с выбранная вами конфигурация масштабирования при развертывании вашего приложения.

Поскольку вы говорите, что работаете с ограничением 12 подключений на экземпляр, я предполагаю, что это означает, что App Engine определил, что ваш экземпляр должен обрабатывать более 12 запросов одновременно. Чтобы избежать этого сценария, вы должны установить max_concurrent_requests равным 12 или ниже в вашем app.yaml и обязательно завершить все соединения, как только вы закончите с ними. Таким образом, ни один экземпляр не должен пытаться использовать более 12 подключений к базе данных одновременно.

Обратите внимание, что это ограничение применяется только к стандартной среде App Engine, то есть экземпляр, работающий на Гибкая среда не будет подпадать под это ограничение количества подключений для каждого экземпляра и сможет правильно обрабатывать подключения до тех пор, пока App Engine не сочтет необходимым создание другого экземпляра.