Mastering Swoole PHP: Build High Performance Concurrent System with Async and Coroutines / Осваиваем Swoole PHP: построение высокопроизводительной конкурентной системы с асинхронностью и корутинами: Часть 2: Основы
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Вторая часть этой книги знакомит с историей создания Swoole PHP. Какие проблемы решаются не очень хорошо с традиционным PHP-FPM без сохранения состояния и моделью блокирующего ввода-вывода. bubenok 30.01.21 в 10:08 |
|
|
Зачем нужна сторонняя библиотека? Какие у нас есть проблемы? Это лучшее решение? Мы должны задать себе эти вопросы, прежде чем тратить время и ресурсы на изучение и освоение новой библиотеки. bubenok 30.01.21 в 10:10 |
||
|
Nginx и PHP-FPM - это шаблон для большинства веб-проектов PHP сегодня. bubenok 30.01.21 в 10:12 |
||
|
Немного истории PHP. До PHP-FPM популярным решением был веб-сервер Apache httpd в связке с модулем mod_php. Начиная с Fedora 27, когда mod_php перестал устанавливаться по умолчанию, используется php-fpm. А Fedora 33 прекратила поддержку mod_php. bubenok 30.01.21 в 10:17 |
||
|
И PHP-FPM, и mod_php не сохраняют состояние подключения. Это сделало PHP одним из самых популярных языков веб-программирования, а также первым языком некоторых разработчиков. bubenok 30.01.21 в 10:19 |
||
|
Архитектура без сохранения состояния также является самой популярной веб-архитектурой последние 10 лет. Большинство современного программного обеспечения построено без сохранения состояния, поскольку масштабирование является важным фактором. Архитектура без сохранения состояния более масштабируема, легко расширяема добавлением большего количества серверов в случаях, когда ваш трафик растет. Разработчики делают меньше ошибок и не думают об утечках памяти. Создавать приложения без сохранения состояния проще; разработчикам не нужно слишком много думать о том, как управлять состояниями на уровне приложения. bubenok 30.01.21 в 10:22 |
||
|
Как и во многих других задачах, не существует одного ответа, подходящего для решения всех проблем. Архитектура без сохранения состояния - не единственно правильное решение, и у нее есть недостатки, которые мы обсудим в другом разделе. bubenok 30.01.21 в 10:24 |
||
|
Сравним приложения без сохранения состояния с приложениями, хранящими состояния во внешнем хранилище в базе данных или кеше. Приложения с отслеживанием состояния сохраняют некоторые состояния в приложении и повторно используют их для других запросов. По своей природе PHP-FPM не может сохранять состояния в приложении, вам нужно полагаться на локальные кеши, такие как Memcache или другое удаленное хранилище кешей. bubenok 30.01.21 в 10:27 |
||
|
База данных и кеш сохраняют состояние с подключенным постоянным хранилищем. Хотя приложения без сохранения состояния позволяют горизонтально масштабировать веб-приложения в определенном масштабе, например, для миллионов пользователей, это не решает всех проблем, а просто перемещает проблему на другие уровни. Однажды придется разобраться с такими проблемами, как масштабирование базы данных, масштабирование хранилища кеша. bubenok 30.01.21 в 10:31 |
||
|
Вы должны иметь возможность выбирать монолитное решение или микросервисную архитектуру в зависимости от потребностей вашего приложения. Некоторые состояния могут быть сохранены и повторно использованы в приложении; некоторые другие состояния можно рассматривать как внешние состояния. bubenok 30.01.21 в 10:33 |
||
|
Это одна из причин, почему были созданы PHP-решения с отслеживанием состояния, такие как Swoole PHP. bubenok 30.01.21 в 10:34 |
