将微服务连接到 Zipkin

2025 年 1 月 9 日 | 2 分钟阅读

在本节中,我们将微服务连接起来,将它们的跟踪消息放在 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-serverpom.xml 文件,并添加以下依赖项

我们想创建一个它接受格式的消息。我们需要添加 Zipkin 依赖项。

我们将使用 amqp 消息协议将消息发送到 Zipkin。因此,我们需要添加 amqp 依赖项。添加 amqp 依赖项后,我们可以在 currency-conversion-service, currency-exchange-service,netflix-zuul-api-gateway-server 中获得 RabbitMQ 的连接。

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

使用 Zipkin UI 仪表板跟踪请求

在此步骤中,我们将触发一个请求。但在触发请求之前,请确保 五个 服务正确运行。我们必须按以下顺序运行这五个服务。否则,我们将收到错误或不正确的响应。

步骤 1: 按照我们列出的顺序运行以下服务。

  • NetflixEurekaNamingServerApplication.java
  • ZipkinDistributedTracingServerApplication (从命令提示符运行)
  • CurrencyExchangeServiceApplication.java (在端口 8000 上)
  • CurrencyConversionServiceApplication.java (在端口 8100 上)
  • NetflixZuulApiGatewayServerApplication.java

请记住: 确保所有五个应用程序都正确运行。

步骤 2: 调用请求 https://:8100/currency-converter-feign/from/EUR/to/INR/quantity/100。它会正确返回响应。

但我们有兴趣了解后台发生了什么。

步骤 3: 打开 Zipkin UI。它显示了我们已连接到 Zipkin 的所有三个服务。

Connecting Microservices to Zipkin

步骤 4: 从下拉列表中选择 一个 服务,然后单击 Find Traces 按钮。我们选择了 currency-conversion-service。它显示了 currency-conversion-service 的不同执行列表。

Connecting Microservices to Zipkin

步骤 5: 选择其中一个。它显示了服务的整个跟踪。

Connecting Microservices to Zipkin

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

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

Connecting Microservices to Zipkin

微服务中最重要的挑战是提高可见性(后台发生了什么)。因此,Zipkin 服务器实现了服务的可见性。