Re: message/data bus
От: · Великобритания  
Дата: 15.03.24 14:38
Оценка: 8 (1) +1
Здравствуйте, binks, Вы писали:

B>Возникла необходимость реализовать шину сообщений.

B>Предполагается следующий стандартный сценарий использования:
B>1. Клиент делает запрос. В ответ получает идентификатор созданной задачи. Далее делает запросы по идентификатору запроса, чтобы узнать его статус, при завершении задачи получает ответ.
B>2. Шина получает запрос и создаёт задачу. Если есть тот кто обработает этот тип задачи, то ему передаётся эта задача.
B>3. Обработчик задачи формирует ответ при успешном завершении задачи или при ошибке. Размер данных в ответе относительно небольшой,
Не очень ясно что тут сообщение. Шина это просто штука для передачи сообщений.
Клиент делает запрос: кладёт сообщение в шину в определённый топик запросов. Обработчик запроса получает сообщение, делает вычисление, создаёт сообщение-ответ и кладёт в топик ответов. Клиент получает ответ. Что за "узнать статус"?

B>наверное до сотни килобайт (но что там будет дальше не знаю, может гораздо больше).

Обычно сообщения подразумеваются мелкие, до килобайта. Если больше — делают что-то вроде аттачей: большой результат кладётся в какой-нибудь сторадж, отправляется мелкое сообщение с указанием откуда взять результат.

B>Что можно почитать по этому поводу?

Доки по какой-нибудь кафке. Гарантии доставки — at-least-once, at-most-once. Партицирование. Идемпотентность. Проблема двух генералов. correlation id. Event Sourcing.
В общем не знаю, много чего тут. Конкретные вопросы лучше задавай.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.