Как реализовать рентгеновское оборудование с помощью микросервисов Vertx, встроенных в java? Есть ли SDK для vertx aws-xray? Я использовал java sdk, но не получил карту обслуживания.
Инструментарий AWS X-Ray со сборкой Vertx Microservices на Java
Ответы (2)
Насколько мне известно, X-Ray ни в каком виде не работает с Vert.x. Основная причина этого в том, что основным методом распространения интервалов в X-Ray является использование Threadlocal для отслеживания состояния.
Threadlocal не будет работать в реактивном фреймворке, таком как Vert.x, из-за переключения контекста между потоками в пулах потоков в этих типах фреймворков. У Spring WebFlux такая же проблема.
Мы связывались как со службой поддержки AWS, так и с представителями Amazon, и всегда отвечали: «мы рассмотрим это», однако они, похоже, не очень заинтересованы, так как я подозреваю, что для правильной работы требуется полная переписывание.
В настоящее время AWS X-Ray SDK для Java не предоставляет промежуточное ПО или поддержку трассировки для архитектуры микросервисов Vert.x. Поддерживаются только фреймворки Tomcat и Spring. Мне любопытно, как вы используете Java SDK в своем приложении.
Одним из способов отслеживания вашего приложения может быть использование настраиваемые сегменты и подсегменты (хотя это будет означать, что вам придется выполнять много ручной работы с инструментами).
Вы можете начать сегмент для своего приложения, используя _ 1_ и установите соответствующие свойства. Затем вы можете создать подсегменты для ваши нисходящие вызовы или любой фрагмент кода, который вы хотите отследить. См. doc, чтобы узнать о семантическом значении Сегмент и Подсегмент.