Pull to refresh
10
0
Борис @borisd_ru

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

Send message

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

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

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

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

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

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

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

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

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

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

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

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

Да, там надо роутинг продумать, есть проблемы с «наивным» подходом, например, если поставить "*" в качестве ключа, то тогда нужно будет настраивать group/consumer в коннектах к стримам, иначе консьюмеры будет получать чужие сообщения и делать «nack», удаляя их из стрима (это уже часть реализации messenger).
Думал упомянуть этот в статье, но показалось, что она и так уже растянулась.
Если такой подход решает задачу — то вполне норм. Но messenger дает гибкость, ценой создания непонятных абстракций. В принципе, как я и писал выше — я сделал демо по работе с мессенджером с redis streams, состоящий из всего нескольких файлов без всякой лишней мишуры и зависимостей: github.com/backend-university/products/tree/master/products/02-redis-streams-bus.
Может быть будет полезно.
Надо будет посмотреть — как раз этот symfony/console затянулся с зависимостями. Хотя я искал использование интерфейсов MessageBus (и прочих) в vendor и не помню, чтоб встретил что-то подходящее.
Ну нет, от фреймворка уйти нет задачи, а иногда есть задача искать компоненты, не привязанные к определенным фреймворкам. В моём проекте в качестве «фреймворка» используется, грубо говоря, контейнер и request-router, а остальное — компоненты.
В конечном итоге, конечно, да, и на этой странице хорошее пояснение с примером на PHP, но на странице о транспорте из Learn more есть примеры только на yml или контейнере симфони.
Спасибо за советы.
Я бэкенд-разработчик, поэтому пока что хожу по граблям js, писал свой код параллельно с перечитыванием книжки по javascript. Так что у меня пока что без пакетных менеджеров, но хочу поиграть с webpack. Про hot reload не задумывался до этого, штука и впрямь полезная.
Я пока что пробовал только в хроме. В планах было портирование на сафари и мозиллу, но нулевая конверсия поубавила желание.

Information

Rating
Does not participate
Registered
Activity