Spring Cloud将微服务连接到Zipkin示例

在本节中, 我们将连接微服务以将其跟踪消息放在RabbitMQ上。一旦我们将消息放在RabbitMQ上, 它将被Zipkin服务器接收。
让我们将currency-conversion-service, currency-exchange-service和netflix-zuul-api-gateway-server连接到RabbitMQ服务器。
步骤1:打开currency-conversion-service, currency-exchange-service和netflix-zuul-api-gateway-server的pom.xml文件, 并添加以下依赖项:
我们要以其除外的格式创建一条消息。我们需要添加Zipkin依赖项。

< dependency> < groupId> org.springframework.cloud< /groupId> < artifactId> spring-cloud-sleuth-zipkin< /artifactId> < /dependency>

我们会将消息发送到使用amqp消息协议的Zipkin。因此, 我们需要添加amqp依赖项。添加amqp的依赖关系后, 我们将RabbitMQ连接到了货币转换服务, 货币交换服务和netflix-zuul-api-gateway-server。
< dependency> < groupId> org.springframework.cloud< /groupId> < artifactId> spring-cloud-starter-bus-amqp< /artifactId> < /dependency>

现在, 我们将尝试一起运行所有服务。
使用Zipkin UI仪表板跟踪请求 在这一步中, 我们将触发一个请求。但是在发出请求之前, 请确保五个服务运行正常。我们必须按以下顺序运行这五个服务。否则, 我们会得到错误或错误的响应。
步骤1:按照我们列出的顺序运行以下服务。
  • NetflixEurekaNamingServerApplication.java
  • ZipkinDistributedTracingServerApplication(从命令提示符运行)
  • CurrencyExchangeServiceApplication.java(在端口8000上)
  • CurrencyConversionServiceApplication.java(在端口8100上)
  • NetflixZuulApiGatewayServerApplication.java
切记:确保五个应用程序都正确运行。
步骤2:调用请求http:// localhost:8100 / currency-converter-feign / from / EUR / to / INR / quantity / 100。它正确返回响应。
但是我们很想知道背景中发生了什么。
步骤3:打开Zipkin UI。它显示了我们已连接到Zipkin的所有三个服务。
Spring Cloud将微服务连接到Zipkin示例

文章图片
步骤4:从下拉列表中选择任何一项服务, 然后单击Find Traces按钮。我们选择了一种货币兑换服务。它显示了货币转换服务不同执行的列表。
Spring Cloud将微服务连接到Zipkin示例

文章图片
步骤5:选择其中之一。它显示了服务的整个轨迹。
Spring Cloud将微服务连接到Zipkin示例

文章图片
在上图中, 当我们调用currency-converter-feign时, 请求首先转到API网关, 然后API Gateway将请求发送到Currency-exchange-service。
我们还可以看到服务的详细信息。在下图中, 我们显示了currency-exchange-service的详细信息。
Spring Cloud将微服务连接到Zipkin示例

文章图片
微服务中最重要的挑战是带来可见性(后台发生的事情)。因此, Zipkin服务器实现了服务的可见性。
点击这里下载货币兑换服务
点击这里下载货币兑换服务
点击这里下载netflix-eureka-naming-server
【Spring Cloud将微服务连接到Zipkin示例】点击这里下载netflix-zuul-api-gateway-server

    推荐阅读