IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker安装Zipkin,SpringCloud整合Zipkin -> 正文阅读

[系统运维]Docker安装Zipkin,SpringCloud整合Zipkin

一、Zipkin概述

sleuth分布式请求链路跟踪,可以得知微服务之间的调用链路,由于监控信息只能输出到控制台不方便查看,因此我们需要一个图形化的工具zipkin。zipkin是twitter开源的分布式跟踪系统,主要用来收集系统的实时数据,从而追踪系统的调用问题。
官网:https://zipkin.io/

完整的调用链路(sleuth结合zipkin 底层监控):
sleuth结合zipkin-底层监控原理图(完整的调用链路)
上图解释:

  1. 一条链路通过Trace Id 唯一标识,Span标识发起的请求信息,各span通过parent id关联起来。
    在这里插入图片描述
  2. 整个链路的依赖关系如下:

在这里插入图片描述

二、Docker安装Zipkin

  1. 拉取最新镜像
    docker pull openzipkin/zipkin
  2. 运行镜像
    ①普通运行
    docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin
    ②docker-compose 运行,新建docker-compose.yml,加入以下内容
version: '2'
services:
# The zipkin process services the UI, and also exposes a POST endpoint that
# instrumentation can send trace data to. Scribe is disabled by default.
zipkin:
image: openzipkin/zipkin
container_name: zipkin
environment:
- STORAGE_TYPE=mysql
# Point the zipkin at the storage backend
- MYSQL_DB=zipkin
- MYSQL_USER=root
- MYSQL_PASS=123456
- MYSQL_HOST=192.168.1.8
- MYSQL_TCP_PORT=3306
# Uncomment to enable scribe
# - SCRIBE_ENABLED=true
# Uncomment to enable self-tracing
# - SELF_TRACING_ENABLED=true
# Uncomment to enable debug logging
# - JAVA_OPTS=-Dlogging.level.zipkin=DEBUG -Dlogging.level.zipkin2=DEBUG
ports:
# Port used for the Zipkin UI and HTTP Api
- 9411:9411
# Uncomment if you set SCRIBE_ENABLED=true
# - 9410:9410
#networks:
# - default
# - my_net #创建网路 docker network create my_net 删除网络 docker network rm my_net
#networks:
#my_net:
#external: true

守护进程启动: cd 到docker-compose.yml目录下,docker-compose up -d
停止:docker-compose stop
mysql脚本下载地址
https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql/src/main/resources/mysql.sql

三、SpringCloud整合Zipkin

支付服务和订单服务引入以下pom依赖和yml配置。

  1. 引入pom依赖
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
     <version>2.2.8.RELEASE</version>
 </dependency>

由于spring-cloud-starter-zipkin同时包含了sleuth,因此可以省略spring-cloud-starter-sleuth的引用。

  1. 添加zipkin相关配置
#服务追踪
    zipkin:
      base-url: http://ip:9411/ # zipkin服务器的地址
      discovery-client-enabled: false    #关闭服务发现,否则spring cloud会把zipkin的url当作服务名称
      sender:
        type: web #设苦使用http的方式传输数据
    sleuth:
      traceId128: true
      sampler:
        probability: 1.0 #抽样采集率为100%,默认为0.1 ,即10%
      propagation-keys: user_name
  1. 业务类Controller添加方法
  • 支付服务8001业务类Controller添加以下方法:
@GetMapping("/payment/zipkin")
 public String paymentZipkin() {
     return "hi ,i'am paymentzipkin server fall back,welcome to here, O(∩_∩)O哈哈~";
 }
  • 订单服务80的Controller中添加以下方法:
@GetMapping("zipkin")
 public String paymentZipkin() {
     String result = restTemplate.getForObject(PAYMENT_URL + "/payment/zipkin", String.class);
     return result;
 }
  1. 测试
    依次启动注册中心eureka7001,支付服务8001,订单服务80。
    使用postman发送多次请求:http://localhost:89/consumer/payment/zipkin;
    访问http://your_host:9411/zipkin/
    注意:若使用云服务器记得关闭防火墙和设置安全组。
    服务调用链路追踪信息统计:
    在这里插入图片描述

四、Zipkin数据持久化

Zipkin存储原则:默认将监控数据存储在内存中,如果Zipkin挂了或者重启,监控数据就会消失。所以要适应生产的需要,就要实现监控数据的持久化。而想要实现实现持久化,自然就是要将数据存储到数据库。

Zipkin支持将数据存储到:

  • 内存(默认,不适用于生产)
  • MySQL(当数据量大时,查询较慢,不建议使用)
  • ElasticSearch(建议使用)
  • Cassandra(Twitter官方使用,国内使用的公司较少,相关文档较少)

Zipkin数据持久化官网文档:https://github.com/openzipkin/zipkin#storage-component

ElasticSearch作为Zipkin存储数据库的官方文档如下:

  • elsticsearch-storage: https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage
  • zipkin-storage/elasticsearch:https://github.com/openzipkin/zipkin/tree/master/zipkin-storage/elasticsearch

通过docker安装:

docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=192.168.56.10:9200
openzipkin/zipkin-dependencies

ElasticSearch环境变量:
在这里插入图片描述
Zipkin支持的ElasticSearch环境变量:
在这里插入图片描述
参考视频教程

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:27:51  更:2022-01-12 00:29:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:33:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码