Фреймворк высокопроизводительного распределенного сервера приложений PHP — SwooleDistributed

PHP Swoole

Выберите структуру SD, чтобы помочь развитию предприятия

В конце этого года потребовалось более двух лет итераций. Это плодотворный год для платформы SD. Благодаря постоянным итерациям и улучшениям платформа SD завоевала хорошую репутацию в кругу. Многие новые платформы основаны на дизайне. идеи SD.Фреймворк также используется многими стартапами и крупными предприятиями.

Что такое технология SD framework?

Полное имя SD-фреймворка — SwooleDistributed.Из названия один — Swoole, а другой — Distributed.Это серверный фреймворк приложений, который можно распространять и развертывать на основе расширений Swoole.
С помощью эффективной среды разработки PHP, высокопроизводительного механизма асинхронной сетевой связи Swoole и других высокодоступных расширений и инструментов платформа SD предоставляет разработчикам стабильную, эффективную и мощную среду сервера приложений.

стоимость входа

Честно говоря, по сравнению с популярным в настоящее время фреймворком FPM стоимость входа в SD относительно высока, потому что концепция дизайна отличается, а операционная среда полностью отличается от традиционной среды PHP-FPM.Для длительного использования LAMP ( LANP) технология Для разработчиков будет период адаптации.Если сложность системы, связанная с разработкой приложения, проста, начать работу с SD относительно легко.Согласно простым примерам и документам, можно начать исследование SD почти сразу, но если вы разрабатываете сложное приложение, вам все равно необходимо ознакомиться со многими компонентами, содержащимися в SD.

Каковы мощные функции SD framework?

Здесь мы перечисляем различные функции и компоненты модулей, предоставляемые SD.

  • Гибридный протокол
    Платформа SD поддерживает протоколы длинных соединений TCP, WebSocket, протоколы коротких соединений HTTP и UDP.
    Настраивая и открывая разные порты, разработчики могут легко управлять различными протоколами и совместно использовать набор бизнес-кодов.Конечно, вы можете изолировать коды с помощью интеллектуальной маршрутизации.
    Длинные соединения могут быть настроены с различными протоколами передачи данных, такими как текстовые протоколы двоичных протоколов и т. д. Различные инкапсуляции протоколов могут быть настроены с помощью интерфейса оболочки и распаковщика, предоставляемого платформой, и различные протоколы могут быть автоматически преобразованы, например, вы отправляете сообщение через широковещательную рассылку, и сообщение передается разным клиентам, а клиенты используют разные протоколы, тогда инфраструктура автоматически преобразует инкапсуляцию разных протоколов в соответствии с разными портами.
    Вы также можете отправлять push-сообщения всем клиентам с длительным подключением через Http.Такой тип совместной работы по смешанному протоколу будет очень прост на платформе SD.
  • MVC и умная маршрутизация
    Дизайн фреймворка представляет собой архитектуру MVC, в которой каждый уровень может быть дополнительно разделен на подуровни.Разработчики могут продолжать управлять контроллером иерархически через разные папки или они могут разделить модель на бизнес-уровень и уровень данных. Все зависит от собственного дизайна системы разработчика. Интеллектуальная маршрутизация будет обрабатывать данные, распакованные распаковщиком, и отвечает за передачу этих данных на уровень контроллера.
  • промежуточное ПО
    Платформа SD также предоставляет промежуточное программное обеспечение, которое может обрабатывать входящие данные, такие как очистка аномальных данных, изменение данных, статистика трафика, сбор журналов и другие функции. Можно установить несколько промежуточных программ, и они привязаны к портам.
  • пул объектов
    Большинство объектов в структуре SD используют технологию пула объектов.Технология пула объектов способствует стабильности системной памяти, уменьшает количество GC и повышает эффективность работы системы.Было доказано, что пул объектов сделал большой вклад в стабильность системы Разработчики также могут использовать этот набор технологий объединения объектов для увеличения повторного использования объектов, снижения частоты GC и NEW, а также значительно улучшить стабильность системных сбоев и утечек памяти.
  • Асинхронный клиент и пул соединений
    Mysql, Redis, клиент Http, клиент Tcp и другие более сложные клиенты являются асинхронными в среде SD.Асинхронность решает общую возможность параллелизма системы, но асинхронные клиенты должны обеспечивать обслуживание пула соединений, платформа SD предоставляет пул соединений. , и разработчикам не нужно самим управлять пулом соединений, им нужно только его использовать.
  • сопрограмма
    Асинхронные обратные вызовы событий решают проблему параллелизма, но вызывают путаницу в бизнес-коде. Платформа SD предоставляет сопрограммы для решения этой проблемы.Ключевое слово yield обеспечивает асинхронную синхронную запись, что устраняет большое количество вложенных обратных вызовов в деловом письме.Вы можете добиться асинхронной производительности с помощью yield + синхронной записи.
    Сопрограммы предоставляют полный набор систем, включая тайм-ауты, исключения, спящий режим, мультиплексирование и создание пользовательских сопрограмм.
  • задача на время
    Как следует из названия, задача, которая выполняется периодически.
  • выполнение задачи
    Поддерживает доставку трудоемких задач в процесс Task.
  • Автоматическая перезагрузка
    Можно включить функцию автоматической перезагрузки фреймворка, чтобы немедленно реагировать на изменения кода.

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

  • Кластеры и микросервисы
    Фреймворк обеспечивает развертывание кластера. Включив переключатель кластера и развернув сервер инструментов Consul, мы можем начать путешествие по кластеру. Функции сообщений в фреймворке поддерживают кластерную среду. Предоставляя API-интерфейсы и API-интерфейсы мониторинга, мы можем реализовывать микросервисы.В микросервисах мы предоставляем такие функции, как мониторинг работоспособности, автоматический выключатель, тайм-аут, балансировка нагрузки и миграция запросов.
    Кластер использует одноранговую сеть без промежуточных узлов и единой точки скрытой опасности.Концепция проекта показана на следующем рисунке.

    image
    image

  • Подпишитесь и опубликуйте
    Функция публикации подписки, предоставляемая SD, также поддерживает кластерную среду и строго соответствует спецификации публикации подписки, определенной MQTT, и реализует все функции. Это, наверное, лучшая и лучшая функция публикации подписки.

  • отправка событий
    Функция диспетчеризации событий между процессами и серверами, на ее основе построены многие инфраструктуры SD.
  • Управление пользовательскими процессами и межпроцессный RPC
    Платформа SD переупаковывает пользовательский процесс. Разработчики могут запускать свой собственный пользовательский процесс. Пользовательский процесс может быть асинхронным или синхронным. Он также поддерживает различные пулы соединений и сопрограммы. Пользовательский процесс имеет множество применений. Эта же структура также поддерживает пользовательские процессы. и рабочие процессы выполняют вызовы RPC друг к другу.
  • Запланированные задачи в кластере
    Через Консул можно ставить задачи на время, и они будут синхронизироваться на все серверы в кластере для выполнения, сервер кластера сам выберет лидера, а по получению того, является ли он лидером, можно определить выполняется ли задача.
  • Контекст
    Это контекст, который используется в процессе обработки сообщений, что очень практично и удобно.

Далее идет компонент функции SD.

  • Асинхронный клиент AMQP и распределенная система задач
    Протокол очереди сообщений AMQP, платформа предоставляет асинхронный клиент, поддерживающий протокол AMQP, который может быть связан с RabbitMQ.Благодаря распределенным компонентам задач, предоставляемым платформой, можно построить распределенную систему задач.
  • Асинхронный MQTT-клиент
    Асинхронные клиенты MQTT могут подписываться и публиковать сервисы MQTT.
  • Простой кластерный сервер MQTT
    Он поддерживает простой сервер MQTT уровня QOS0 и поддерживает развертывание кластера.
  • Система мониторинга серверов
    Предоставляет фон мониторинга сервера, который может отслеживать кластер, а также может отслеживать конкретное рабочее состояние сервера.
    Вот несколько скриншотов




SD Framework — это гораздо больше, чем сейчас

Платформа SD быстро развивается, и с участием большего количества разработчиков ее ждет лучшее будущее.
Документация и официальный сайт с фреймворком SD
Официальный сайт
Документация
GitHub
Если вам понравилось, поддержите звездочкой~