Открыть список
Как стать автором
Обновить
83.2
Карма
0
Рейтинг
Антон Титов @Lachezis

CTO and Co-Founder at Spiral Scout

RoadRunner здесь и сейчас

В Octane кстати 2я версия RoadRunner. С парой значительных улучшений в плане перформанса.

PHP Дайджест № 201 (15 – 29 марта 2021)

Просто в РР нет стейтфул кода, утечка стейта может быть только из PHP. Зная особенности дизайна Laravel можно предположить что это именно проблема Lumen.

PHP Дайджест № 201 (15 – 29 марта 2021)

Это была проблема в коде, скорее всего у вас был стейтфул кук коллектор

PHP Дайджест № 201 (15 – 29 марта 2021)

Строже код, меньше костылей чтобы работало быстро. Но у нас свой тулкит.

Отложенные задачи в рамках микро-сервисной архитектуры

Такая задача кстати решается на cadence/temporal. На уровне каждого воркфлоу можно делать сколько угодно таймеров.

PHP Дайджест № 197 (11 – 25 января 2021)

Рекомендую зайти в официальное комьюнити temporal: https://community.temporal.io/


На практике все переписать не получится, но изолировать часть процессов — без проблем. Для начала нужно выделить части бизнес логики в виде activity: https://docs.temporal.io/docs/activities (в них можно записать большую часть легаси кода)


А после смотреть на реализацию workflow сверху: https://docs.temporal.io/docs/workflows

Макропроблема микросервисов

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

Макропроблема микросервисов

Не бывает серебряной пули. Если ваши аргументы работают на среднего размера проектах, то при масштабировании нагрузки и команды оверхед микросервисов становится гораздо более оправданным.

Макропроблема микросервисов

Есть поддежка Golang и скоро появится PHP.

PHP 8 в восьми кусочках кода

Специально проверил $this->test = $thisв конструкторе на миллионе итераций внутри функции. Деструктор вызывается, память стабильна. Предполагаю что есть какой-то способ выстрелить в ногу.

PHP 8 в восьми кусочках кода

Уже много лет нет утечек памяти из-за циклических зависимостей. В 7 версии хорошо обновили GC.

Comet — PHP-фреймворк для быстрых REST API

Поскольку оверхеда на модули в спирали нет то можно уменьшать любую сборку. Вот пример с чисто ХТТП стеком — https://github.com/the-benchmarker/web-frameworks/tree/master/php/spiral

Comet — PHP-фреймворк для быстрых REST API

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

Comet — PHP-фреймворк для быстрых REST API

Ну Spiral работает на RR раз в 5-7 быстрее Symfony, и это на точках с ORM (согласно тому же бенчмарку). Сравнивать микро сборки с фулл стеком достаточно ненадежное занятие.

Spiral: высокопроизводительный PHP/Go фреймворк

Spiral это PHP фреймворк, к моменту выхода PHP8 мы будем поддерживать эту версию.

Spiral: высокопроизводительный PHP/Go фреймворк

Добрый день. Не вижу ни одной причины почему код может не работать, с 7.4 у нас проблем нет, старую магию давно выпилили.

Spiral: высокопроизводительный PHP/Go фреймворк

Если кратко: стек может гарантированно заменять события, но не наоборот. При событиях обработка данных происходит вне контекста запроса, и требует множество костылей (before, after, stop propagation, priorities). Отдельно стоит отметить обработку ошибок, какая именно цепочка событий отработает предугадать сложно.


Если в приложении такое дебажить еще как-то можно, то в долгоживущем 60% проблем на ранних стадиях находилось в событиях и хуках.


Стеки же гарантированно ограничивают контекст приложения в момент запроса, если запрос заканчивается (ошибкой или нет) то вы гарантированно выйдете из стека и востановите состояние.


А еще стеки можно вкладывать друг в друга, добиться такого с ивентами в глобальном инстансе приложения без проблем практически невозможно.

Spiral: высокопроизводительный PHP/Go фреймворк

Про это мы расскажем на конференции. :)

Spiral: высокопроизводительный PHP/Go фреймворк

Ещё вопрос, почему внутри используется zend diactaros, а не laminas diactaros? То есть ругающийся composer update иногда настораживает.

Войдет в 1.7.1 релиз. :)

Информация

В рейтинге
4,011-й
Откуда
San Francisco, California, США
Зарегистрирован
Активность