Использование C++ для вычислений бэкэнда в веб-приложении
Я запускаю PHP-интерфейс для приложения, которое много работает с данными и использует Cassandra в качестве хранилища данных.
однако я знаю, что PHP не даст мне производительность, необходимую для некоторых вычислений (а также управление для огромного количества данных, которые должны быть в памяти)
Я хотел бы написать резервные копии на C++ и получить доступ к нему из приложения PHP. Я пытаюсь найти лучший способ соединить их.
некоторые варианты, которые я просмотрел:
- бережливость (естественный выбор, так как я уже использую его для Кассандры)
- буферы протокола Google
- gSOAP
- Ось Apache
выше только то, что я посмотрел, я не ограничиваю себя.
данные, передаваемые в приложение PHP, очень малы, поэтому потоковая передача не требуется. Передаются только результаты расчетов.
Что вы, ребята, думаешь?
3 ответов
более подробная информация о том, сколько данных потребуется для ваших вычислений, будет полезна. Бережливость кажется разумным выбором. Вы можете использовать его между PHP, вашим вычислительным узлом и бэкэндом Cassandra. Если ваш результат невелик, ваш транспорт RPC между PHP и вычислительным узлом не будет иметь слишком большого значения.
на вашем месте я бы использовал бережливость, нет смысла тянуть другую структуру RPC. Идите с тем, что у вас есть и что вы уже знаете. Бережливость делает это так легко (как и буферы протокола google, но вам не нужны два разных механизма)
вы ограничиваете себя наличием C++ в качестве отдельного приложения? Вы рассматривали возможность прямого взаимодействия с PHP? (т. е. связать расширение C++ в вашем приложении PHP).
Я не говорю, что второй подход обязательно лучше, чем первый, но вы должны рассмотреть его в любом случае, потому что он предлагает несколько разных вариантов компромисса. Например, задержка передачи материала между PHP и c++, безусловно, будет выше, когда эти два приложения являются отдельными чем когда они динамически связаны с одним и тем же приложением.