@EnableZipkinServer против @EnableZipkinStreamServer, почему две аннотации для одной и той же вещи - PullRequest
2 голосов
/ 03 мая 2020

Я создаю сервер zipkin, и я видел учебник, в котором класс Boostrap помечен @EnableZipkinServer, а другие - @EnableZipkinStreamServer. Мне трудно понять, в чем разница между этими двумя. Они взаимозаменяемы?

1 Ответ

3 голосов
/ 03 мая 2020

Zipkin - это проект на основе Spring-Boot, @EnableZipkinServer не является аннотацией Spring Cloud. Это аннотация, которая является частью проекта Zipkin. Это часто сбивает с толку тех, кто плохо знаком с Spring Cloud Sleuth и Zipkin, потому что команда Spring Cloud действительно написала аннотацию @EnableZipkinStreamServer как часть Spring Cloud Sleuth. Аннотация @EnableZipkinStreamServer упрощает использование Zipkin с RabbitMQ и Kafka.

Преимущества @EnableZipkinServer - простота настройки. С сервером @EnableZipkinStream вам нужно установить и настроить отслеживаемые службы, а сервер Zipkin публиковать / прослушивать RabbitMQ или Kafka для отслеживания данных. Преимущество аннотации @EnableZipkinStreamServer заключается в том, что вы можете продолжать собирать данные трассировки, даже если сервер Zipkin недоступен. Это связано с тем, что сообщения трассировки будут накапливать данные трассировки в очереди сообщений до тех пор, пока сервер Zipkin не станет доступен для обработки записей. Если вы используете аннотацию @EnableZipkinServer и сервер Zipkin недоступен, данные трассировки, которые были бы отправлены службами в Zipkin, будут потеряны.

...