📜  将微服务连接到Zipkin

📅  最后修改于: 2021-01-07 03:51:24             🧑  作者: Mango

将微服务连接到Zipkin

在本节中,我们将连接微服务以将其跟踪消息放在RabbitMQ上。一旦我们将消息放在RabbitMQ上,它将被Zipkin服务器接收。

让我们将currency-conversion-service,currency-exchange-servicenetflix-zuul-api-gateway-server连接到RabbitMQ服务器。

步骤1:打开currency-conversion-service,currency-exchange-servicenetflix-zuul-api-gateway-server的pom.xml文件,并添加以下依赖项:

我们要以其除外的格式创建一条消息。我们需要添加Zipkin依赖项。


org.springframework.cloud
spring-cloud-sleuth-zipkin

我们会将消息发送到使用amqp消息协议的Zipkin。因此,我们需要添加amqp依赖项。添加amqp的依赖关系,我们将RabbitMQ连接到currency-conversion-service,currency-exchange-servicenetflix-zuul-api-gateway-server


org.springframework.cloud
spring-cloud-starter-bus-amqp

现在,我们将尝试一起运行所有服务。

使用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的所有三个服务。

步骤4:从下拉列表中选择任何一项服务,然后单击Find Traces按钮。我们选择了一种货币兑换服务。它显示了不同货币兑换服务执行的列表。

步骤5:选择其中任何一个。它显示了服务的整个轨迹。

在上图中,当我们调用currency-converter-feign时,请求首先到达API网关,然后API Gateway将请求发送到currency-exchange-service。

我们还可以看到服务的详细信息。在下图中,我们显示了currency-exchange-service的详细信息。

微服务中最重要的挑战是带来可见性(后台发生的事情)。因此,Zipkin服务器实现了服务的可见性。