当前位置: 首页 > 编程笔记 >

Spring Cloud Zipkin服务端追踪服务

章增
2023-03-14
本文向大家介绍Spring Cloud Zipkin服务端追踪服务,包括了Spring Cloud Zipkin服务端追踪服务的使用技巧和注意事项,需要的朋友参考一下

Zipkin 简介

ZipKin 是一个开放源代码的分布式跟踪系统,用于收集服务的定时数据,以解决微服务架构中的延迟问题。包括数据的收集、存储、查找和展现。

每个服务向 Zipkin 报告计时数据,Zipkin 会根据调用关系通过 Zipkin UI 生成依赖关系图,显示了多少跟踪请求通过每个服务。该组件可以让我们通过一个 Web 前端轻松的收集和分析数据。例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。

服务追踪说明

微服务架构是通过业务来划分服务的,使用 REST 调用。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能。

如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。

随着业务的不断扩张,服务之间互相调用会越来越复杂。随着服务的越来越多,对调用链的分析会越来越复杂,如下图:

Zipkin 服务端引入依赖

在 pom.xml 主要添加 zipkin 、 zipkin-server 和 zipkin-autoconfigure-ui 依赖

<dependency>
  <groupId>io.zipkin.java</groupId>
  <artifactId>zipkin</artifactId>
</dependency>
<dependency>
  <groupId>io.zipkin.java</groupId>
  <artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
  <groupId>io.zipkin.java</groupId>
  <artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>

注意: 这里的 zipkin 版本号为 2.10.1,需要将版本号托管到统一依赖管理项目中

相关配置

在 application.yml 主要添加 zipkin 的相关配置

management:
 metrics:
  web:
   server:
    auto-time-requests: false

在 Application 启动类中通过 @EnableZipkinServer 注解开启 Zipkin Server 功能

@SpringBootApplication
@EnableEurekaClient
@EnableZipkinServer
public class ZipkinApplication {
  public static void main(String[] args) {
    SpringApplication.run(ZipkinApplication.class, args);
  }
}

Spring Cloud Zipkin 客户端

在所需要被追踪的项目中添加以下配置

引入依赖

在 pom.xml 中添加 spring-cloud-starter-zipkin 依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

相关配置

在 application.yml 中添加 zipkin 地址即可

spring:
 zipkin:
  base-url: http://localhost:9411

测试服务追踪

启动全部项目,打开浏览器访问:http://localhost:9411 ,出现以下界面

点击 Find a trace,可以看到具体服务相互调用的数据

点击 Dependencies,可以发现服务的依赖关系

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题:假设有两个服务 A 和 B,服务 A 对服务 B 进行 API 调用。一段时间后,服务A因网络错误而掉落或丢失。 另一个服务将如何猜测来自服务A的出站呼叫丢失/从未发生?我需要另一个并发应用程序,如果服务A出站呼叫丢失,它将自动响应(运行紧急代码)。 存在哪些尖端解决方案? 例如,我的想法: 服务 A 在某些中间件中注册调用事件(事件信息、“正在运行”状态、时间戳等)。 如果此调用在 N 秒

  • 服务器端提供了比较多的关于推送的 API,包括广播,多播和单播方式的推送,还有超时,心跳,推送事件等设置。 Timeout 字段 该字段用于设置推送空闲超时。默认值为 120 秒,即 2 分钟。 当服务器发布了推送主题后(后面会专门介绍推送),客户端会跟服务器端保持一个长连接,如果达到超时时间,仍然没有任何消息推送给客户端,则返回 nil,此时,如果客户端仍然在线的话,则会立即再次发送获取推送主题

  • 我想使用电子商务跟踪我的网站,但我的网站不是一个传统的电子商务类型的网站。我们是一家船运公司,所以我们的订单是以运费为基础的。 网站的工作方式是客户在前端提交一个盒子来处理,然后在后端我们计算运输成本,然后批量运行我们所有的客户不同的货物。 有没有一种方法可以让我使用电子商务跟踪代码,并让它在我批处理所有货物时在后端通过每次发货循环? 谢谢你!

  • 企业微信第三方服务端推送和公众号一样,请参考:公众号:服务端 第三方平台推送事件 企业微信第三方数据推送的有以下事件: suite_ticket 推送 suite_ticket 授权成功 create_auth 授权变更 change_auth 授权取消 cancel_auth 通讯录变更(Event) change_contact ChangeType 成员变更 新增成员 create_user

  • 企业微信服务端推送和公众号一样,请参考:公众号:服务端 第三方平台推送事件 企业微信数据推送的有以下事件: 通讯录变更(Event) change_contact ChangeType 成员变更 新增成员 create_user 更新成员 update_user 删除成员 delete_user 部门变更 新增部门 create_party 更新部门 update_party 删除部门 delet

  • 第三方平台的服务端推送和公众号一样,请参考:公众号:服务端 第三方平台推送事件 公众号第三方平台推送的有四个事件: 如已经授权的公众号、小程序再次进行授权,而未修改已授权的权限的话,是没有相关事件推送的。 授权成功 authorized 授权更新 updateauthorized 授权取消 unauthorized VerifyTicket component_verify_ticket SDK