Workerman — высокопроизводительный фреймворк (php)
Workerman — это высокопроизводительный фреймворк для серверов сокетов PHP. Workerman основан на многопроцессорной PHP и библиотеке опроса событий libevent. Разработчики PHP могут разрабатывать свои собственные сетевые приложения, такие как службы Rpc, серверы чатов, сервер мобильных игр и т.д.
Workerman
Цель workerman — упростить разработчикам PHP разработку высокопроизводительных сервисов приложений на основе сокетов без необходимости разбираться в деталях сокета PHP и многопроцессорности PHP. Workerman сам по себе представляет собой многопроцессорный серверный фреймворк PHP с модулями управления процессами PHP и связи сокетов, поэтому он может работать независимо, не полагаясь на такие контейнеры, как php-fpm, nginx
или apache
.
Функции, поддерживаемые Workerman
- Разработка на чистом PHP, поддержка нескольких процессов, поддержка php8
- Поддержка TCP / UDP, одна машина может поддерживать 100 000 длинных соединений TCP
- Поддержка распределенного развертывания, кластеры могут поддерживать миллионы или более одновременных TCP-соединений
- Поддержка события libevent для запуска сетевой библиотеки
- Поддержка горячего обновления и плавного перезапуска сервера
- Имеет множество высокопроизводительных компонентов, таких как асинхронный Mysql, Redis, Dns и т.д.
Встроенный мониторинг
У workerman есть модуль статистики мониторинга, который может подсчитывать некоторые данные самого workerman, такие как количество выходов из процесса и статус выхода, размер памяти каждого процесса и отслеживаемый IP-порт, время запуска каждого процесса, сервис имя запущенного процесса.
Количество запросов, обработанных процессом, количество соединений, количество неудачных передач пакетов и так далее.
Эту информацию можно запускать и php start.php status
просматривать локально.
На GitHub есть тесты: Какой самый быстрый?
Language | Framework | Speed (64) | Speed (256) | |
---|---|---|---|---|
1. | java (11) | activej (3.0) | 172 874.98 | 214 039.81 |
2. | php (7.4) | workerman (4.0) | 149 415.01 | 182 618.83 |
3. | go (1.15) | gearbox (1.1) | 121 267.09 | 124 517.21 |
4. | go (1.15) | fiber (2.3) | 120 760.89 | 129 919.56 |
5. | nim (1.4) | httpbeast (0.2) | 117 678.99 | 146 365.75 |