#google-cloud-platform #google-cloud-functions #mongodb-atlas
# #google-облачная платформа #google-cloud-функции #mongodb-atlas
Вопрос:
Я уже некоторое время использую GCF с Node / Typescript / MongoDB Atlas, и все это работает довольно плавно при холодном запуске (и подключении к Atlas), который длится всего несколько секунд. Недавно я начал играть с той же функциональностью, используя среду выполнения JVM с Kotlin. Я обнаружил, что при локальном тестировании во время холодного запуска время подключения к Atlas сопоставимо со средой узла, но при подключении из GC во время холодного запуска для установления соединения может потребоваться до 10 секунд! Я создал свой кластер Atlas на GC и использовал регион в США. Мне интересно, нет ли чего-нибудь, чего мне не хватает, чтобы ускорить время подключения? Ниже приведена реализация, с которой я тестировал.
Зависимости Gradle:
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compileOnly 'com.google.cloud.functions:functions-framework-api:1.0.1'
// MongoDB amp; KMongo
implementation "org.mongodb:mongodb-driver-sync:4.1.1"
implementation 'org.mongodb:mongodb-driver-core:4.1.1'
implementation 'org.mongodb:mongo-java-driver:3.12.7'
implementation 'org.litote.kmongo:kmongo-coroutine:4.2.0'
implementation 'org.mongodb:bson:4.1.1'
implementation "org.slf4j:slf4j-simple:1.7.30"
}
Подключение к MongoDB Atlas:
object Database {
init {
System.setProperty(
"org.litote.mongo.test.mapping.service",
"org.litote.kmongo.jackson.JacksonClassMappingTypeService"
)
}
private val uri = MongoClientURI(MONGO_CLIENT_URI)
private val mongoClient = KMongo.createClient(uri.uri)
val database = mongoClient.getDatabase(uri.database).coroutine
}
Любая помощь / совет будут с благодарностью! 🙂
Комментарии:
1. Что такое медленно? Запуск? Соединение? Битрейт?
2. Не могли бы вы поделиться более подробной информацией о вашей реализации, чтобы мы могли проверить возможные проблемы?
3. @RafaelLemos Я отредактировал свой первоначальный пост, включив в него свою реализацию для подключения к MongoDB Atlas.
4. Я бы сказал, что ваша реализация верна, используете ли вы один и тот же регион для обеих функций
5. @RafaelLemos да, и проект GC, и кластер MongoDB Atlas используют регион us-central1.