На одном сервере работают несколько проектов. Написаны они на PHP + MySQL
Один из проектов является центральным, к нему подключена большая БД и он включает в себя все механизмы и логику.
Другие проекты/приложения/сайты имеют свою независимую логику, но в определенных местах есть необходимость брать данные из центрального проекта.
Видимые пути решения:
1. Подключаемся к БД напрямую и берем то что нужно.
2. по HTTP (через file_get_contents) обращаемся к некоторому интерфейсу центрального проекта и берем данные в формате JSON / XML
3. Использовать обертку командной строки - выполнять PHP файл из другого PHP файла через CLI.
Сейчас всё работает по Варианту №2, но из-за того что создается лишнее HTTP соединение - сильные тормоза. Вариант с подключением к БД отклоняется, так как помимо самих данных проект содержит огромную логику обработки и анализа.
Вариант №3 вроде как выход? Прошу поделиться опытом в разрешении таких проблем.
Вынесите мелкие сервисы с независимой логикой на другие сервера, а взаимодействие продолжайте по схеме №2.
Если у вас соединения создают тормоза - оптимизируйте веб-сервер. Если очень тяжелые выборки или ресурсоемкие операции - ставьте их в очередь, по окончанию обработки пинайте дочерний сервис, а он уже сам разрулит что к чему. Если не ресурсоемкие и редко меняются -кешируйте все, что можно
Вариант №3 - скорее извращение