Здравствуйте, Подскажите что делать в такой ситуации и как решить такую проблему? 1. Есть сайт-страница на SSD хостинге index.php 2. Есть приложение которое каждую секунду посылает запросы POST на index.php?somed=data где в итоге данные сохраняются в БД - MYSQL 3. Есть еще одно приложение(клиент) которое каждую секунду посылает запросы GET на index.php, а она в свою очередь обращается к БД - MYSQL и тянет данные. Мой хостинг провайдер говорит что такая схема выдает очень большую нагрузку и это только по одному IP: Количество запросов Apache: 946478 Количество запросов NGINX: 946604 CPU, %: 16,0041 А если таких IP будет 1000 и более, то все ляжет. Как можно оптимизировать такой процесс что бы все работало ? Каким образом использовать кэширование страницы ? Нужно ли для этого процеса облако и поможет ли оно ?
1. в п2 данные с каждого IP отсылаются свои или все IP генерят одни и теже данные? 2. п3 по каждому запросу всем отдает одни и теже данные или каждому свое отдает? 3. Как часто реально нужно обновлять данные? может достаточно раз в 5 секунд например?
1. Данные отсылаются мои и с моего ІP 2. по каждому запросу всем отдает одни и теже данные 3. Нужно как можно чаще. --- Добавлено --- Спасибо лишь бы это помогло впн сниму )) А есть ли у вас пример как использовать вебсокеты для этого ?
Грубо говоря все чаты работают на вебсокетах. Одно постоянное соединения которое при наступлении определенного события отправляет или запрашивает данные. Вот библиотека на php http://socketo.me/ Но лучше на node
отсылать с клиента можно по прежнему через POST имхо... а вот отсылать клиентам с сервера уже надо через сокеты, это в разы снизит нагрузку.. один запрос сделали и всем кто слушает сокет разослали.. тут у нас обсуждался сокет сервер Centrifugo - там даже пример есть) https://php.ru/forum/threads/centrifugo-dlja-php.68951/#post-557210 https://php.ru/forum/threads/sokety.66982/#post-543202
Часто бывает очень удобно. Есть мнение, что лучше проявляет на бекэнде, а на нагруженном фронте замедляет. К топику никакого отношения не имеет