Как я могу кешировать запросы GraphQL с помощью VueJS и GraphQL-Yoga - PullRequest
1 голос
/ 29 апреля 2019

У меня есть приложение Vue2, которое получает данные из моего бэкэнда GraphQL. Подумайте: количество пользователей, количество созданных сообщений, ваши сообщения и тому подобное.

HTML, CSS, JS и т. Д. Приложения Vue2 находятся на CDN и загружаются очень быстро. Мой сервер GraphQL расположен в одном месте и может загружаться медленно, если вы находитесь далеко от сервера. Я хочу увеличить время загрузки моего сайта.

Как я могу сформировать своего рода CDN для моего слоя GraphQL, который кэширует результаты в разных местах, чтобы обычные запросы были быстрыми и быстрыми. У меня есть приблизительное представление о том, как я мог бы начать делать это, но я все еще чувствую, что мне нужны существующие сервисы / структуры для руководства или прямого использования.

Я слышал о GraphCool и Hasura, это то, что я ищу?

1 Ответ

1 голос
/ 29 апреля 2019

В вашем распоряжении несколько вариантов:

  • Используйте AWS с маршрутизацией на основе местоположения и многорегиональными экземплярами EC2.Для наиболее надежного и быстрого обслуживания у вас должен быть экземпляр в следующих местах: Северная Калифорния (США), Северная Вирджиния (США), Сан-Паулу (Бразилия), Париж (Франция), Мумбаи (Индия), Гонконг (Китай).), Токио (Япония), Сингапур, Сидней (Австралия).Вы можете использовать free ec2 instance во всех этих зонах и почти ничего не платить ежегодно, пока начинаете, и увеличивать их по мере необходимости.Я рекомендую t3 micro, который является одним из самых дешевых решений, которые вы можете получить.Это обойдется вам примерно в 840 долларов в год.

  • Перейдите к Heroku, что в основном позволяет вам делать то же самое, что я описал выше в AWS, с меньшим общим общим контролем..

  • Используйте Vuex для сохранения результатов в localStorage на компьютере пользователя, сочетая Vuex с мощным модулем постоянного хранения, например vuex-persistedstate.Объедините это с server sent events, чтобы избежать необходимости запрашивать обновленную информацию вне первоначального запроса. Примечание : Это не решит начальную медленную загрузку заранее.

  • Игнорирует Vuex все вместе и просто сохраняет результат на стороне клиента в localStorage ивозьми его, когда захочешь. Примечание : Это не решит начальную медленную загрузку сразу.

Почему вы еще не упомянули Хасуру?!

Хасура егоЯ не облачный сервис, работающий в одиночку.Вместо этого, Hasura позволяет вам добавить GraphQL Engine поверх уже существующей базы данных PostgreSQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...