У меня есть Node-сервер (использующий Koa), который делает запросы через интерфейс GQL к БД на другом экземпляре сервера. Некоторые из наших запросов приносят большую нагрузку, и я ищу способы ...
- оптимизировать запросы для сокращения времени ответа
- , чтобы сделать наши соединения более устойчивыми (мы получаем много HTTP-ответов (502).
Итак, я слышал, что пул соединений является одним из способов оптимизации ресурсов и написал оболочку для GraphQLClient, которая кэширует каждый экземпляр для каждой конечной точки. Может ли это быть правильно реализовано с использованием шаблона синглтона, бросая каждый экземпляр в объект переменной-члена stati c, причем ключами являются URL-адреса конечных точек, а значениями являются отдельные экземпляры GraphQLClient?
Я уже реализовал некоторую устойчивость повторным запросом к серверу, если ошибка 5xx получена до произвольного тайм-аута.
Какие-либо предложения по вопросу о пуле соединений или другим подходам, о которых я, возможно, не задумывался?