⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Знакомство с Buddy: PHP-сайдкар для Manticore Search

author image
View as markdown

Manticore Buddy — это PHP-основанный сайдкар и компаньон Manticore Search, который ускоряет и упрощает разработку. В мире, где разработка на C++ может быть медленной, Manticore Buddy позволяет разработчикам быстро создавать и внедрять функции.

Благодаря языку PHP и его огромному сообществу, Manticore Buddy обеспечивает большую гибкость и удобство использования. Кроме того, с последней версией 8+ PHP стал быстрее, чем когда-либо, что делает его идеальным выбором для разработчиков, желающих ускорить свои рабочие процессы.

C++ vs. PHP: выбор правильного языка для ваших нужд

Когда речь идет о создании высокопроизводительного программного обеспечения, C++ часто является предпочтительным языком. Однако процесс разработки может быть длительным и сложным, что заставляет многих разработчиков искать альтернативные варианты, повышающие продуктивность. Одним из таких популярных языков является PHP, известный своей удобностью и быстрой работой.

В Manticore Search мы столкнулись с похожей проблемой: обновления нужно было выпускать часто, не жертвуя высокой производительностью. Решением стал паттерн sidecar: мы разработали Buddy — приложение-компаньон, которое реализует на PHP функции, не требующие максимальной производительности.

В конечном счете выбор между C++ и PHP зависит от потребностей вашего проекта. Если приоритетом является высочайшая производительность, лучше выбрать C++. С другой стороны, если вы предпочитаете более быструю разработку и простоту использования, PHP может быть более разумным выбором.

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

Преимущества использования Manticore Buddy

Manticore Buddy — мощный инструмент для разработки Manticore Search, предоставляющий несколько преимуществ для оптимизации процесса разработки. Ниже перечислены основные выгоды от использования Manticore Buddy:

  • Ускорение процесса разработки: интуитивные интерфейсы Buddy и PHP позволяют быстро и без усилий создавать эффективные функции и расширения, экономя время и оптимизируя рабочий процесс.
  • Бесшовная интеграция с PHP-пакетами: Manticore Buddy написан на PHP, что облегчает интеграцию с другими PHP-библиотеками. Разработчики могут использовать любой PHP-пакет, сокращая время разработки и делая инструмент полезным и универсальным. Как один из самых популярных языков, PHP является ценным ресурсом для разработчиков.
  • Повышенная доступность для разработчиков любого уровня: понятная документация и удобный интерфейс делают Buddy доступным для всех уровней навыков. Это может привести к расширению круга участников разработки Manticore Search, повышая гибкость и открывая возможности для будущих улучшений.
  • Выпуск дополнительных функций без обновления C++-кода: Buddy позволяет нам делать мощные вещи: выпускать улучшения, расширения и даже новые функции без прохождения длительного чек-листа реализации на C++. Вместо этого мы можем делать это быстро и надёжно с помощью PHP.

Manticore Buddy — бесценный ресурс для любой команды разработчиков, использующей Manticore Search и желающей расширять его самостоятельно. Его интуитивный интерфейс, возможность использовать любые PHP-пакеты и доступность для разработчиков всех уровней делают его универсальным инструментом для улучшения процесса разработки Manticore Search и предоставления гибкости для удовлетворения особых требований.

Как работает Manticore Buddy

Всё это звучит замечательно, но вы, наверное, спросите: как мы заставили Manticore Search и Buddy работать вместе? В рамках паттерна sidecar мы реализовали внутренний протокол, по которому Manticore Search и Buddy общаются друг с другом. Всё устроено очень просто. Чтобы добавить что-то в Buddy и расширить его возможности, протокол даже не нужно знать: всю сложную работу мы уже сделали, чтобы поверх него было легко строить новое.

Рассмотрим запрос SHOW QUERIES в качестве примера:

  • Manticore Search получает запрос. Если в C++-коде нет обработчика для него или запрос вызывает ошибку, обычно он возвращает её пользователю. Однако теперь Manticore Search просит Buddy попытаться обработать запрос сначала.
  • Затем Manticore Search отправляет запрос в Buddy, используя внутренний протокол коммуникации на основе JSON, и ждёт ответа.
  • Buddy обрабатывает запрос асинхронно и параллельно с помощью ReactPHP, обеспечивая неблокирующую работу. По завершении он возвращает результат в Manticore Search.
  • В конце ответ от Buddy (независимо от его корректности) проксируется клиенту вместе с результатами, предоставленными Buddy. Готово. Просто, верно?

Процесс настолько прост и мощен, что вы можете расширять и обрабатывать пользовательские запросы, просто реализуя их на PHP в Buddy.

Что уже умеет Manticore Buddy

Manticore Buddy был разработан для поддержки широкого спектра функций, как крупных, так и мелких, для Manticore Search. Последняя версия, Manticore 6.0.0, включает набор этих возможностей!

Мы стремились определить самые критические функции для включения в начальную версию. Среди них — auto-schema , автоматически создающий таблицу на основе первого полученного документа, команда SQL BACKUP для простого резервного копирования таблиц и команда SHOW QUERIES для отображения текущих выполняющихся запросов.

Поддерживаются многопоточность и неблокирующая обработка, используя расширение PHP Parallel для выполнения запросов в отдельных потоках. Если Manticore Buddy неожиданно остановится, Manticore Search обнаружит это и автоматически перезапустит его.

Хочу попробовать! Подскажите, как установить?

Установка Manticore Buddy проста и понятна. Пакет "manticore-buddy" является зависимостью пакета "manticore" и автоматически устанавливается при установке Manticore Search.

Однако для корректной работы Manticore Buddy требуются PHP и набор модулей. Чтобы упростить этот процесс, мы разработали Manticore Executor, специализированную версию PHP, которая поставляется с предкомпилированными всеми необходимыми модулями.

Вам просто нужно установить пакеты "manticore" и "manticore-extra", чтобы запустить Manticore Search, Manticore Buddy и Manticore Executor. Не переживайте, Manticore Executor устанавливается в отдельный путь, что гарантирует отсутствие конфликтов с вашими текущими установками PHP.

Что дальше?

Вам интересно, какие возможности Buddy может нам принести? Мы безусловно в восторге! У нас есть несколько предстоящих функций, которые уже завершены и готовы к выпуску. Благодаря удобству PHP и Manticore Buddy мы можем легко предоставить эти функции. Вот небольшой спойлер того, что будет:

  • mysqldump — теперь проще, чем когда-либо, выгружать схему или данные с помощью общедоступного инструмента для MySQL, используя mysqldump.
  • MySQL-подобный вывод таблиц через CLI — интерфейс командной строки Manticore HTTP. Да, просто отправьте HTTP-запрос к эндпоинту /cli и получите отрендеренный ответ, который сильно напоминает клиент MySQL в терминале.
  • Архитектура плагинов . Представьте: плагин для Buddy можно создать всего в несколько кликов и пару строк кода. Его даже можно опубликовать в маркетплейсе, а там же подобрать готовые плагины под свои задачи. Звучит невероятно, правда?

Вы уже можете протестировать некоторые из этих функций, используя нашу версию Buddy для разработки. Просто перейдите в раздел установки dev-версии , чтобы узнать, как установить её на вашу операционную систему.

Заключение

Manticore Search — это поисковый движок с открытым исходным кодом, который набирает популярность в последние годы. Он разработан для удовлетворения широкого спектра поисковых потребностей и используется в различных приложениях, от интернет-магазинов до онлайн-рынков. Успех любого проекта с открытым кодом во многом зависит от вклада разработчиков, и Manticore Search не исключение. Именно здесь Manticore Buddy выходит на сцену, чтобы помочь нам быстрее выпускать и развивать наш продукт для сообщества.

Manticore Buddy — мощный и гибкий поисковый помощник, созданный для ускорения разработки новых функций и расширения возможностей Manticore Search. Его удобный интерфейс, понятная документация и огромное сообщество делают его идеальным выбором для любого PHP-разработчика, желающего ускорить свой рабочий процесс.

Как разработчик, если вы хотите раскрыть весь потенциал Manticore Search, вам стоит изучить и внести свой вклад в Buddy. Это упростит вашу работу и позволит быстрее выпускать продукты без необходимости изменять код на C++. Представьте, вы можете добавить пользовательские функции для вашего случая, просто написав PHP-плагин. Мощно! 🙂


Хотите узнать, с какими проблемами мы столкнулись и как их решали? Прочитайте нашу следующую статью — Manticore Buddy: проблемы и решения

Установить Manticore Search

Установите Manticore Search одной командой в Linux или macOS:

curl https://manticoresearch.com | sh

Для расширенных вариантов установки см. полное руководство по установке и документацию .

Установить Manticore Search