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

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

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

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

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

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

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

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

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

2
задан 26 June 2017 в 20:31
1 ответ

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

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

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

2
ответ дан 3 December 2019 в 11:28

Теги

Похожие вопросы