Я пытаюсь реализовать шаблон запроса / ответа с Kafka.Я работаю с именованными службами и неназванными клиентами, которые отправляют сообщения этим службам, и клиенты могут ожидать ответа.Многие клиенты (от 10 до 100 с) могут взаимодействовать с одной услугой или группой потребителей.
Стратегия первая: фильтрация сообщений
Первой мыслью былодве темы на службу - служба «HelloWorld» будет использовать тему «HelloWorld» и создавать ответы обратно на тему «HelloWorld-Reply».Клиенты будут использовать эту тему ответа и фильтровать уникальные идентификаторы сообщений, чтобы знать, какие ответы имеют к ним отношение.
Недостаток в том, что это может создать ненужную работу для клиентов, чтобы отфильтровать потенциально большое количество несущественных сообщений.сообщения, когда много клиентов взаимодействуют с одним сервисом.
Стратегия два: эфемерные темы
Вторая идея состояла в том, чтобы создать уникальный идентификатор для клиента и отправить этот идентификатор вместес сообщениями.Клиенты будут использовать свою собственную уникальную тему «[ClientID]», а службы будут отправлять эту тему, когда у них будет ответ.Таким образом, клиенты не должны будут фильтровать нерелевантные сообщения.
Недостатком является то, что клиенты могут иметь короткий срок службы, например, они могут быть одноразовыми сценариями, и им придется заранее создавать свою тему и впоследствии удалять ее.Может потребоваться дополнительный процесс для очистки неиспользуемых клиентских тем, если клиент умирает во время обработки.
Что из этого кажется лучшей идеей?