goldensquare Ответов: 1

Как сделать более 1500 запросов к базе данных в течение часа?


Я сделал приложение для чата.
Сообщения отображаются в окне сообщений, которое непрерывно извлекает обновленные сообщения из баз данных каждые 10 мс через ajax.
Каждое новое отправленное сообщение мгновенно отображается в окне сообщения. Так что это дает иллюзию реального чата без промедления.
Моя проблема заключается в том, что как только приложение выходит в эфир, мне говорят, что учетная запись mysql
не может превышать запрос запроса 1500 запросов в час из базы данных.

Что я уже пробовал:

Я погуглил и обнаружил, что некоторые настройки нужно сделать с таблицами грантов, которые позволяют поднять планку до неограниченного предположительно. Проведя некоторые исследования, я в конечном итоге полностью взорвал свои базы данных не только для этого проекта, но и для других на моем локальном сервере xampp. Sad.

Мне просто нужно знать, что таблица грантов-это единственный способ обойти эту проблему или есть другой способ.

Thomas Daniels

Вместо того чтобы получать сообщения каждые 10 мс, вы можете рассмотреть возможность использования WebSockets для поддержания соединения между клиентами и вашим сервером, что работает гораздо лучше для этой цели.

1 Ответов

Рейтинг:
1

OriginalGriff

В принципе, вам нужно изменить весь способ, которым вы это делаете: если ваш хостинг ограничивает вас 1500 запросами в час, то это, вероятно, 1500 запросов для всех ваших пользователей. таким образом, если у вас есть 1500 пользователей, пытающихся общаться в чате, это один запрос в час каждый.

You will need to either change your hosting service (and probably pay for it, I've only seen limits like that with free accounts) or change your whole design to a "push" model rather than "pull" - probably both, since a 1500 request per hour works out at 60 * 60 / 1500 = 2.4 seconds between requests on average. Even paid for accounts are going to get pretty slow and cumbersome as user numbers rise with your current method - when I ping Google.com, the round trip time exceeds 10 ms so your whole system is going to fail because requests will only just reach the destination before you start making another, let alone access the DB and get back to your client!

Попробуйте сделать следующее: откройте новое окно CMD и введите "PING nameOfYourDomain", а затем нажмите клавишу enter.

ping google.com
ping codeproject.com
Если значения в разделе "time=" не меньше 10 мс (а их не будет), ваша система очень быстро завязывается в узлы ...


goldensquare

Я пропинговал свой домен, и среднее время составляет 169 МС. Это намного выше 10 мс. Мой хостинг действительно бесплатный, вероятно, это и является причиной ограничения.
Мне интересно читать об этих моделях дизайна "push" и "pull". Возможно, вы могли бы направить меня на какой-нибудь хороший ресурс в интернете.

OriginalGriff

https://www.google.com/search-что?q=online+chat+app+Php&rlz=1C1CHBF_en-GBGB754GB754&oq=online+chat+app+Php&aqs=chrome..69i57.8064j0j7&sourceid=chrome&ie=UTF-8