Как стать автором
Обновить
9
Карма
0
Рейтинг
Борис @borisd_ru

backend-разработчик

Что лучше: Spark Structured Streaming или полное прекращение работы прода?

Интересно получается, спасибо) Почитаю, как время освободится, но звучит так, будто это можно средствами кафки решить, увеличив количество партиций и оставив 1 консьюмер на партицию. А так, возможно, какие-то гарантии по доставке/чтению/очередности теряются.

Не смотрели графики еще?)

Что лучше: Spark Structured Streaming или полное прекращение работы прода?

А как конкретно spark разбивает партиции на "подпартиции"? Кафка в рамках консьюмер группы позволяет читать партицию только одному консьюмеру: https://kafka.apache.org/documentation/#design_consumerposition

Мониторите ли вы системные метрики кафки? презентация по метрикам от confulent

Если да, и если не жалко рассказать, то:

  • Какая нагрузка на кафку у вас в bytes/sec

  • Какой при этом LocalTimeMs

Я столкнулся с тем, что не могу найти в интернетах, чтоб кто-то этими метриками делился, поэтому, пока не могу понять, норм ли это, иметь значения >1s.

По следам highloadcup: php vs node.js vs go, swoole vs workerman, splfixedarray vs array и многое другое

Похоже, что неправильно считается $startPosition, там больше бы подошло:

$startPosition = $id * BLOCK_LENGTH; // было $id - $heapIndex * 1000000

При беглом разборе не понял, зачем в сдвиге $heapIndex. И получается, что каждый следующий id затирал значения предыдущего.

Попробовал свой вариант - работает.

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

Не подумал даже, тоже вариант

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

Да, там надо роутинг продумать, есть проблемы с «наивным» подходом, например, если поставить "*" в качестве ключа, то тогда нужно будет настраивать group/consumer в коннектах к стримам, иначе консьюмеры будет получать чужие сообщения и делать «nack», удаляя их из стрима (это уже часть реализации messenger).
Думал упомянуть этот в статье, но показалось, что она и так уже растянулась.

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

Если такой подход решает задачу — то вполне норм. Но messenger дает гибкость, ценой создания непонятных абстракций. В принципе, как я и писал выше — я сделал демо по работе с мессенджером с redis streams, состоящий из всего нескольких файлов без всякой лишней мишуры и зависимостей: github.com/backend-university/products/tree/master/products/02-redis-streams-bus.
Может быть будет полезно.

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

Надо будет посмотреть — как раз этот symfony/console затянулся с зависимостями. Хотя я искал использование интерфейсов MessageBus (и прочих) в vendor и не помню, чтоб встретил что-то подходящее.

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

Ну нет, от фреймворка уйти нет задачи, а иногда есть задача искать компоненты, не привязанные к определенным фреймворкам. В моём проекте в качестве «фреймворка» используется, грубо говоря, контейнер и request-router, а остальное — компоненты.

Перевод PHP бэкенда на шину Redis streams и выбор независимой от фреймворков библиотеки

В конечном итоге, конечно, да, и на этой странице хорошее пояснение с примером на PHP, но на странице о транспорте из Learn more есть примеры только на yml или контейнере симфони.

Расширение для хрома: создание, публикация, опыт

Спасибо за советы.
Я бэкенд-разработчик, поэтому пока что хожу по граблям js, писал свой код параллельно с перечитыванием книжки по javascript. Так что у меня пока что без пакетных менеджеров, но хочу поиграть с webpack. Про hot reload не задумывался до этого, штука и впрямь полезная.

Расширение для хрома: создание, публикация, опыт

Я пока что пробовал только в хроме. В планах было портирование на сафари и мозиллу, но нулевая конверсия поубавила желание.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность