Spring Cloud教程-将微服务连接到Zipkin
将微服务连接到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依赖项。
我们将发送使用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: 调用请求http://localhost:8100/currency-converter-feign/from/EUR/to/INR/quantity/100
。它会正确返回响应。
但是我们有兴趣了解后台发生了什么。
步骤3: 打开Zipkin UI。它显示了我们连接到Zipkin的所有三个服务。
步骤4: 从下拉列表中选择任何一个服务,然后单击查找跟踪按钮。我们选择了一个currency-conversion-service。它显示了currency-conversion-service的不同执行列表。
步骤5: 选择其中一个。它显示了服务的整个跟踪。
在上图中,当我们调用currency-converter-feign时,请求首先发送到API网关,然后API网关将请求发送到currency-exchange-service。
我们还可以查看服务的详细信息。在下面的图像中,我们展示了currency-exchange-service的详细信息。
微服务中最重要的挑战之一是提供可见性(了解后台发生了什么)。因此,Zipkin服务器可以实现对服务的可见性。