Я думаю, это возможно, но это будет включать комбинацию фильтров, перехватчик restTemplate и классы фильтров сервлета.
Я бы дал диаграмму, если бы это был плагин Plantuml для stackoverflow.
создать preFilter, скажем, TimeTrackerFilter, который бы добавил метку времени точки входа «time-start-id» в заголовок запроса, userContextFilter, который будет перехватывать все входящие HTTP-запросы и сопоставлять HTTP-запрос с классом userContext, UserContextClass состоит из getter /метод setter, который извлекает и сохраняет значения из java.lang.ThreadLocal
UserContextHolder.java для хранения UserContext в переменной ThreadLocal, доступной в любом методе, вызываемом потоком, обрабатывающим запрос пользователя
Класс UserContextINterceptor для внедрения «идентификатора времени начала» в любой исходящий запрос службы на основе http, выполняемый из шаблона отдыха.
пост-фильтр, который фактически получает идентификатор времени начала из контекста запроса,рассчитайте разницу во времени и добавьте новый заголовок «время взято» со значением, равным разности времени, к ответу
на тот случай, если вы не хотите видеть идентификатор времени начала в других вызываемых сервисах, используя только пре- и пост-фильтр.достаточно (игнорируйте userContext и перехватчики в этом случае)
note : когда вы хотите добавить значение в заголовки HTTP-запроса, вы используете метод RequestContext addZuulRequestHeader ().Этот метод будет поддерживать отдельную карту заголовков HTTP, которые были добавлены во время прохождения запроса через фильтры с вашего сервера Zuul.Данные, содержащиеся в карте ZuulRequestHeader, будут объединены при вызове целевой службы вашим сервером Zuul.