将微服务连接到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-serverpom.xml文件,并添加以下依赖项:

我们希望创建一个符合其规范的消息。我们需要添加Zipkin依赖项。

我们将发送使用amqp消息协议的消息给Zipkin。因此,我们需要添加amqp依赖项。通过添加amqp依赖项,我们将在currency-conversion-service、currency-exchange-servicenetflix-zuul-api-gateway-server中获得与RabbitMQ的连接。

现在,我们将尝试同时运行所有服务。

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

connecting-microservices-to-zipkin.png

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

connecting-microservices-to-zipkin-1.png

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

connecting-microservices-to-zipkin-2.png

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

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

connecting-microservices-to-zipkin-3.png

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

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图