Я ищу способ или лучшее/лучшее решение для решения проблемы регистрации. Я использую актеры Akka в кластерах для своих внутренних служб и играю в интерфейсе, чтобы принимать HTTP-запросы. Мой вопрос прост из старого вопроса о том, чтобы весь журнал приложений был идентифицирован с теми же HTTP-запросами, которые просто используют MDC, который существует в большинстве существующих фреймворков регистрации, генерируя UUID в начале и помещая в контекст ,Группировка/идентификация журналов субъектов для одного и того же «запроса»
Пример нашего потока данных может выглядеть следующим образом:
"Http Request/System A" -> "Actor1/Кластер B" -> "Actor2/Cluster C" -> «Ответ системы А и полный запрос "
Это означает, что в процессе задействованы как минимум 3 отдельные системы. Весь мой журнал отправляется в Логсташ. Я могу сгенерировать UUID с начала запроса из System A. Однако я хочу, чтобы UUID можно было переносить/копировать во все подсистемы, которые все используют сериализацию Protobuf для связи друг с другом, обработки заданий принадлежащих одному и тому же запросу http.
Я знаю, что всегда могу добавить поле id ко всем своим сообщениям, но это очень уродливо.
Мне интересно, есть ли лучший способ или лучший механизм для переноса информации во все другие системы Akka, не представляя слишком много шума для моей бизнес-логики?
«Уродливый» вариант - единственный, о котором я знаю. – Rumoku
Вы можете сделать свое определение генерации детерминированным на основе httprequest, таким образом, все ваши системы будут просто генерировать один и тот же идентификатор при регистрации? – C4stor
@ C4stor Я не совсем уверен, как это можно сделать. Фактически, за исключением точки входа в Систему А, все другие актерские системы получают с использованием протобуфа сериализации, и я думаю, что я был неясно, сожалею об этом. – lunaspeed