SpringCloud学习笔记(十三)_Zipkin使用SpringCloud Stream以及Elasticsearch

在前面的文章中,我们已经成功的使用Zipkin收集了项目的调用链日志。但是呢,由于我们收集链路信息时采用的是http请求方式收集的,而且链路信息没有进行保存,ZipkinServer一旦重启后就会所有信息都会消失了。基于性能的考虑,我们可以对它进行改造,使用SpringCloud Stream进行消息传递,使用Elasticsearch进行消息的存储。

参考文章

Zipkin全链路监控

SpringCloud-Stream整合RabbitMQ

改造ZipkinServer

1. 增加依赖
复制代码
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  

|

复制代码
<dependency>  
            <groupId>io.zipkin.java</groupId>  
            <artifactId>zipkin-autoconfigure-collector-rabbitmq</artifactId>  
            <version>2.11.8</version>  
        </dependency>  
        <dependency>  
            <groupId>io.zipkin.java</groupId>  
            <artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId>  
            <version>2.8.4</version>  
        </dependency>  

---|---

2. 配置文件

增加rabbit和es的相关配置

复制代码
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  

|

复制代码
zipkin:  
  collector:  
    rabbitmq:  
      addresses: 10.0.20.132  
      port: 5672  
      username: root  
      password: root  
      virtual-host: /unicode-pay  
      queue: zipkin  
  storage:  
    StorageComponent: elasticsearch  
    type: elasticsearch  
    elasticsearch:  
      hosts: 10.0.20.25:9200  
      cluster: elasticsearch  
      index: zipkin  
      index-shards: 5  
      index-replicas: 1  

---|---

至此ZipkinServer的配置就搞定了。

3. 客户端增加依赖

以下两个依赖任选其一就可以

复制代码
1  
2  
3  
4  

|

复制代码
<dependency>  
			<groupId>org.springframework.amqp</groupId>  
			<artifactId>spring-rabbit</artifactId>  
		</dependency>  

---|---

复制代码
1  
2  
3  
4  

|

复制代码
<dependency>  
			<groupId>org.springframework.boot</groupId>  
			<artifactId>spring-boot-starter-amqp</artifactId>  
		</dependency>  

---|---

4. 客户端增加mq的相关配置
复制代码
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  

|

复制代码
spring:  
  sleuth:  
    sampler:  
      probability: 1.0  
  rabbitmq:  
    addresses: 10.0.20.132  
    port: 5672  
    username: root  
    password: root  
  zipkin:  
    rabbitmq:  
      queue: zipkin  

---|---

注意要把以下配置去掉哦

复制代码
1  
2  
3  
4  
5  

|

复制代码
spring:  
  zipkin:  
    base-url: http://localhost:19411  
    sender:  
      type: web  

---|---

现在环境已经搭建完毕了,根据你的采样频率看一看结果如何吧

GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代码所在模块:cloud-demo-zipkin-server,cloud-demo-consumer-feign-hystrix,cloud-demo-provider

如果对您有所帮助,请记得帮忙点一个star哦

本文出自http://zhixiang.org.cn,转载请保留。

相关推荐
编程彩机20 分钟前
互联网大厂Java面试:从微服务到分布式缓存的技术场景解析
redis·spring cloud·消息队列·微服务架构·openfeign·java面试·分布式缓存
星火开发设计24 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
BugShare43 分钟前
Obsidian 使用指南:从零开始搭建你的个人知识库
笔记·obsidian
BackCatK Chen1 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
深蓝海拓1 小时前
PySide6从0开始学习的笔记(二十五) Qt窗口对象的生命周期和及时销毁
笔记·python·qt·学习·pyqt
理人综艺好会1 小时前
Web学习之用户认证
前端·学习
●VON1 小时前
React Native for OpenHarmony:项目目录结构与跨平台构建流程详解
javascript·学习·react native·react.js·架构·跨平台·von
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
AI视觉网奇2 小时前
FBX AnimSequence] 动画长度13与导入帧率30 fps(子帧0.94)不兼容。动画必须与帧边界对齐。
笔记·学习·ue5
科技林总2 小时前
使用Miniconda安装Jupyter
笔记