Rest vs Kafka
От: BlackEric http://black-eric.lj.ru
Дата: 04.07.21 16:20
Оценка:
Проект парсит различные источники и постит их в другие системы.
Парсер запускается по таймеру. И вот как дальше. Парсер что-то нашел. Как ему правильно отдать данные постеру?
Вызывать rest api предоставляемое постером? Или же публиковать в Rabbit или Kafka, ну а постер соответственно будет на них подписываться?
Или же вообще, как предлагают, парсер формирует json поста и пишет в бд, а парсер тоже по таймеру забирает это из бд.

Нужно понимать, что N распарсенных источников могут постится в M других систем.
https://github.com/BlackEric001
Re: Rest vs Kafka
От: Буравчик Россия  
Дата: 04.07.21 18:09
Оценка: +1
Здравствуйте, BlackEric, Вы писали:

BE>Проект парсит различные источники и постит их в другие системы.

BE>Парсер запускается по таймеру. И вот как дальше. Парсер что-то нашел. Как ему правильно отдать данные постеру?
BE>Вызывать rest api предоставляемое постером? Или же публиковать в Rabbit или Kafka, ну а постер соответственно будет на них подписываться?
BE>Нужно понимать, что N распарсенных источников могут постится в M других систем.

Парсер пишет в кафку. Вернее, само сообщение пишет в какое-то хранилище aka s3, а ссылку на него пишет в кафку.

Каждый постер сам читает кафку (и вытаскивает сообщение из s3).
Если постеры ленивые, и не умеют читать из кафки, то вместо него это может делать твой скрипт — по расписанию читать кафку и дергать API постера.

BE>Или же вообще, как предлагают, парсер формирует json поста и пишет в бд, а парсер тоже по таймеру забирает это из бд.


Не надо БД. Получится своя реализация кафки поверх БД.
Best regards, Буравчик
Re[2]: Rest vs Kafka
От: BlackEric http://black-eric.lj.ru
Дата: 04.07.21 19:41
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Парсер пишет в кафку. Вернее, само сообщение пишет в какое-то хранилище aka s3, а ссылку на него пишет в кафку.

S3 — это Amazon s3?

Почему так, а не помещать все в кафку? Из-за объема? Ее хранилище же тоже можно чистить.
https://github.com/BlackEric001
Re[3]: Rest vs Kafka
От: Буравчик Россия  
Дата: 04.07.21 20:04
Оценка: 6 (1) +1
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, Буравчик, Вы писали:


Б>>Парсер пишет в кафку. Вернее, само сообщение пишет в какое-то хранилище aka s3, а ссылку на него пишет в кафку.

BE>S3 — это Amazon s3?

Не обязательно амазон. Можно и другие решения — похожие по api на амазон (s3-like) или даже не похожие. Просто s3-like — стандарт де-факто.

BE>Почему так, а не помещать все в кафку? Из-за объема? Ее хранилище же тоже можно чистить.


У кафки ограничен объем сообщения. Увеличить, конечно, можно, но кафка это в первую очередь все-таки брокер, и потом уже хранилище. Большие сообщения могут ухудщить характеристики кафки, в общем, не рекомендуется "производителем".
Best regards, Буравчик
Re: Rest vs Kafka
От: AndrewJD США  
Дата: 06.07.21 07:33
Оценка: +1
Здравствуйте, BlackEric, Вы писали:

BE>Проект парсит различные источники и постит их в другие системы.

Так а какие требования к системе: размер сообщений, рейт, требования по доступности?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[3]: Rest vs Kafka
От: · Великобритания  
Дата: 06.07.21 07:53
Оценка:
Здравствуйте, BlackEric, Вы писали:

Б>>Парсер пишет в кафку. Вернее, само сообщение пишет в какое-то хранилище aka s3, а ссылку на него пишет в кафку.

BE>S3 — это Amazon s3?
BE>Почему так, а не помещать все в кафку? Из-за объема? Ее хранилище же тоже можно чистить.
По дефолту у кафки размер сообщения ограничен 1мб. А желательно чтобы сообщения были порядка килобайт, иначе с перформансом нужно будет бороться.
Как вариант — данные разбивать на пачку мелких сообщений. Но тогда надо будет позаботиться о целостности.
Так что если твои данные помещаются — пиши в кафку. Если нет, то нет.

Up: чистить сообщения в кафке можно по времени (retention period), или по ключу (compacting topic). Т.е. тоже не универсально. Если твои данные укладываются — хорошо, если нет, то плохо...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 06.07.2021 9:14 · . Предыдущая версия . Еще …
Отредактировано 06.07.2021 8:04 · . Предыдущая версия .
Re[2]: Rest vs Kafka
От: BlackEric http://black-eric.lj.ru
Дата: 06.07.21 11:55
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, BlackEric, Вы писали:


BE>>Проект парсит различные источники и постит их в другие системы.

AJD>Так а какие требования к системе: размер сообщений, рейт, требования по доступности?
Размер сообщений — несколько мегабайт.
До 1000 в секунду.
По доступности особых нет.

Думаю, что придется использовать Rabbit, хоть его у нас и нет.
https://github.com/BlackEric001
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.