在本节中, 我们将连接微服务以将其跟踪消息放在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的所有三个服务。
文章图片
步骤4:从下拉列表中选择任何一项服务, 然后单击Find Traces按钮。我们选择了一种货币兑换服务。它显示了货币转换服务不同执行的列表。
文章图片
步骤5:选择其中之一。它显示了服务的整个轨迹。
文章图片
在上图中, 当我们调用currency-converter-feign时, 请求首先转到API网关, 然后API Gateway将请求发送到Currency-exchange-service。
我们还可以看到服务的详细信息。在下图中, 我们显示了currency-exchange-service的详细信息。
文章图片
微服务中最重要的挑战是带来可见性(后台发生的事情)。因此, Zipkin服务器实现了服务的可见性。
点击这里下载货币兑换服务
点击这里下载货币兑换服务
点击这里下载netflix-eureka-naming-server
【Spring Cloud将微服务连接到Zipkin示例】点击这里下载netflix-zuul-api-gateway-server
推荐阅读
- 使用Zipkin进行分布式跟踪示例图解
- 使用Feign REST客户端进行服务调用
- 什么是Spring Cloud()
- Spring Cloud教程入门介绍
- Spring Cloud和Spring Boot之间有什么区别()
- Spring Cloud Config Server示例详细步骤图解
- Android 滑动定位+吸附悬停效果实现
- AndroidStudio中Handler类的内存溢出风险
- ?????????Applications of Reinforcement Learning in Real World