1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cc_1234-Group-Co

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Груп Ко

Билд статус Код климат

Несколько важных изменений в версии V2.0:

  • Поддержка PHP версий не ниже 7.0, поддержка PHP5.6 и ниже прекращена.
  • Разделение зависимостей и коммуникации между базовыми сервисами для обеспечения слабой связанности.
  • Использование протокола Protobuf для передачи данных, что требует строгого определения типов данных в коде базовых сервисов.
  • Базовые сервисы разделены на две части: интерфейс API и реализацию ServiceImpl.

Версия V1.X (https://github.com/fucongcong/GroupCo/tree/v1.1.1)

Структура фреймворка

Фреймворк состоит из двух основных блоков: клиентского (BFF — Backend For Frontend) и серверного, предоставляющего базовые сервисы.

Клиентский (BFF)

  • Использование особенностей сопрограмм для написания асинхронного кода синхронным способом, что улучшает читаемость.
  • Объединение асинхронных возможностей Swoole с традиционной MVC-архитектурой.
  • BFF-клиент должен быть связующим слоем (аналогичным традиционному контроллеру MVC), который предоставляет API.

Серверный

  • Создание с использованием многопроцессного режима Swoole. В текущей версии поддерживается только RPC-вызовы.

Сервисная архитектура

  • Реализована сервисная архитектура с использованием Zookeeper, Redis и MySQL в качестве центров регистрации.
  • Поддерживается централизованное управление конфигурацией Apollo.
  • Обеспечивается обнаружение сервисов, кэширование клиентов, мониторинг сердцебиения и прослушивание сервисов.

Как использовать клиентские сопрограммы и чем они отличаются от традиционных фреймворков?

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

Почему на серверной стороне не используется версия 4.X сопрограмм Swoole?

  • Удобство переноса бизнес-кода. При переходе к микросервисам или при использовании существующих проектов без сопрограмм можно легко перенести код, не беспокоясь о проблемах, связанных с сопрограммами, таких как освобождение соединений и глобальные переменные.
  • Многопроцессный режим может оптимизировать скорость обработки одиночных запросов, используя механизм задач.
  • Стабильность и подтверждение работоспособности в производственной среде.

Использование в производственных условиях

  • Framework GroupCo уже полностью внедрен в нашей команде и обрабатывает миллионы запросов в день. Время отклика составляет примерно от 0,1 до 10 миллисекунд в зависимости от типа запроса.
  • Для крупных проектов рекомендуется избегать использования Redis/MySQL в качестве сервисов обнаружения. Можно также интегрировать другие инструменты обнаружения сервисов, такие как etcd/consul (в будущем планируется поддержка).

Особенности

  • Полная асинхронная диспетчеризация сопрограмм с поддержкой высокой параллельности.
  • Обнаружение сервисов, кеширование клиентов, мониторинг сердцебиений и прослушивание сервисов.
  • Централизованное управление конфигурациями.
  • Асинхронные TCP, HTTP-клиенты.
  • Асинхронный логинг.
  • Асинхронное чтение и запись файлов.
  • Асинхронная работа с MySQL.
  • Обработка асинхронных транзакций MySQL.
  • Поддержка TCP, MySQL, Redis, WebSocket пулов соединений.
  • SOA-вызовы сервисов с внутренней полной реализацией RPC-коммуникации и асинхронной обработкой задач на сервере с последующим объединением данных и возвратом.
  • Параллельное и последовательное асинхронное использование TCP-клиентов.
  • Twig и Doctrine поддерживают представления и данные сервисов.
  • Модульное тестирование с покрытием.

Обзор документации

Примеры и лучшие практики

Обратная связь по ошибкам

Если вы столкнулись с ошибками безопасности или проблемами использования фреймворка во время работы, пожалуйста, создайте issue.

Модель архитектуры

Отличия от сопрограмм Go

Основанные на асинхронности Swoole и реализации генератора PHP, сопрограммы отличаются от встроенных сопрограмм языка Go.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Фреймворк для сервисизации PHP. Подходит для API, HTTP-сервера, RPC-сервера; помогает преобразовать нативные PHP-проекты в микросервисы. Отличная производительность в сочетании с поддержкой высокопроизводительных сопрограмм. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cc_1234-Group-Co.git
git@api.gitlife.ru:oschina-mirror/cc_1234-Group-Co.git
oschina-mirror
cc_1234-Group-Co
cc_1234-Group-Co
master