LINUX.ORG.RU

История изменений

Исправление bvn13, (текущая версия) :

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

т.е. твой кейс.

  1. браузер/мобилка сидит на инстансе А вебсокетом, он формирует ключ ID1, который отправляется в партицию 2 топика «запросы».

  2. на «той стороне» есть процессоры твоего запроса. они должны считать ID1 из ключа твоего сообщения и не «просрать» его, а отправить результат ровно с таким же ID1 тебе.

  3. твой инстанс А должен быть подключен к партиции 2 - консюмеры в кафке работают в консюмер-группах, поэтому ты делаешь каждому инстансу свою консюмер-группу, тогда он точно будет подключен к партиции 2 (ну и к другим тоже, но это не важно).

  4. когда получаешь сообщение - отправляешь его ровно в тот вебсокет, из которого пришло сообщение с ID1 (да, тебе нужно где-то хранить соответствие)

мой опыт https://blog.bvn13.me/2022/08/13/request-reply-pattern-using-apache-kafka-or-how-not-to-loose-your-data.html

Исходная версия bvn13, :

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

т.е. твой кейс.

  1. браузер/мобилка сидит на инстансе А вебсокетом, он формирует ключ ID1, который отправляется в партицию 2 топика «запросы».

  2. на «той стороне» есть процессоры твоего запроса. они должны считать ID1 из ключа твоего сообщения и не «просрать» его, а отправить результат ровно с таким же ID1 тебе.

  3. твой инстанс А должен быть подключен к партиции 2 - консюмеры в кафке работают в консюмер-группах, поэтому ты делаешь каждому инстансу свою консюмер-группу, тогда он точно будет подключен к партиции 2 (ну и к другим тоже, но это не важно).

  4. когда получаешь сообщение - отправляешь его ровно в тот вебсокет, из которого пришло сообщение с ID1 (да, тебе нужно где-то хранить соответствие)