Как организовать взаимодействие между проектами?

Добрый день!

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

Сейчас всё работает по Варианту №2, но из-за того что создается лишнее HTTP соединение - сильные тормоза. Вариант с подключением к БД отклоняется, так как помимо самих данных проект содержит огромную логику обработки и анализа.

Вариант №3 вроде как выход? Прошу поделиться опытом в разрешении таких проблем.
  • Вопрос задан
  • 249 просмотров
Пригласить эксперта
Ответы на вопрос 2
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
Вынесите мелкие сервисы с независимой логикой на другие сервера, а взаимодействие продолжайте по схеме №2.
Если у вас соединения создают тормоза - оптимизируйте веб-сервер. Если очень тяжелые выборки или ресурсоемкие операции - ставьте их в очередь, по окончанию обработки пинайте дочерний сервис, а он уже сам разрулит что к чему. Если не ресурсоемкие и редко меняются -кешируйте все, что можно
Вариант №3 - скорее извращение
Ответ написан
Комментировать
PavelK
@PavelK
А почему бы просто не "include" Ваш интерфейс и вызывать из него на прямую?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы