nacos 集成 zipkin sleuth实现链路追踪(入门篇)

在这里插入图片描述
在这里插入图片描述

声明:链路追踪属于微服务的一部分,微服务系列博文陆续会出,可以帮助小伙伴们学习微服务一站式从入门到精通。

文章目录

          • 一、zipkin 服务端
            • 1. 下载
            • 2. 前台运行
            • 3. 服务端访问
          • 二、网关服务
            • 2.1. 父项目依赖
            • 2.2. gateway依赖
            • 2.3. gateway配置
          • 三、订单服务
            • 3.1. order依赖
            • 3.2. order配置
            • 3.3. 控制层
          • 四、产品服务
            • 4.1. product依赖
            • 4.2. 配置
            • 4.3. 控制层
          • 五、用户服务
            • 5.1.user依赖
            • 5.1.user配置
            • 5.3.控制层
          • 六、测试验证
            • 6.1. 访问
            • 6.2. 控制出台日志
            • 6.3. 服务端监控

一、zipkin 服务端
1. 下载

https://repo1.maven.org/maven2/io/zipkin/zipkin-server
在这里插入图片描述

2. 前台运行
java -jar zipkin-server-2.23.4-exec.jar

在这里插入图片描述

3. 服务端访问

http://zipkin.server.com:9411/zipkin/

在这里插入图片描述

二、网关服务
2.1. 父项目依赖
  <properties><!--全局版本统一管理--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><common.version>1.0-SNAPSHOT</common.version><api.version>1.0-SNAPSHOT</api.version><spring-cloud.version>Hoxton.SR9</spring-cloud.version><spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version></properties><dependencies><!--服务注册发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- spring cloud zipkin 依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency></dependencies><dependencyManagement><dependencies><!--公共模块--><dependency><groupId>com.gblfy</groupId><artifactId>api-serv</artifactId><version>${api.version}</version></dependency><!--公共模块--><dependency><groupId>com.gblfy</groupId><artifactId>common</artifactId><version>${common.version}</version></dependency><!--https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--spring-cloud-alibaba 版本控制--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
2.2. gateway依赖
  	   <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>
2.3. gateway配置
server:port: 80
spring:cloud:nacos:discovery:service: gateway-servserver-addr: localhost:8848gateway:discovery:locator: # 是否与服务发现组件进行结合,通过 serviceId 转发到具体服务实例。lowerCaseServiceId: true # 是否开启基于服务发现的路由规则enabled: true # 是否将服务名称转小写routes:# 订单服务- id: order-servuri: lb://order-servpredicates:- Path=/order/**filters:- StripPrefix=1# 商品服务- id: product-servuri: lb://product-servpredicates:- Path=/product/**filters:- StripPrefix=1zipkin:base-url: http://zipkin.server.com:9411/ # 服务端地址discovery-client-enabled: falsesender:type: web                      # 数据传输方式,web 表示以 HTTP 报文的形式向服务端发送数据sleuth:sampler:probability: 1.0            # 收集数据百分比,默认 0.1(10%)
三、订单服务
3.1. order依赖
 <!-- SpringCloud Openfeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--springmvc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
3.2. order配置
server:port: 8000
spring:application:name: order-servcloud:nacos:discovery:service: order-servserver-addr: localhost:8848zipkin:base-url: http://zipkin.server.com:9411/ # 服务端地址discovery-client-enabled: falsesender:type: web                      # 数据传输方式,web 表示以 HTTP 报文的形式向服务端发送数据sleuth:sampler:probability: 1.0            # 收集数据百分比,默认 0.1(10%)#请求处理的超时时间
ribbon:ReadTimeout: 10000ConnectTimeout: 10000# feign 配置
feign:sentinel:enabled: trueokhttp:enabled: truehttpclient:enabled: falseclient:config:default:connectTimeout: 10000readTimeout: 10000compression:request:enabled: trueresponse:enabled: true# 暴露监控端点
management:endpoints:web:exposure:include: '*'
3.3. 控制层
package com.gblfy.order.controller;import com.alibaba.fastjson.JSON;
import com.gblfy.api.RemoteProductService;
import com.gblfy.api.RemoteUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;@RestController
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class OrderController {private final RemoteProductService productService;private final RemoteUserService userService;//http://localhost:8000/order/create?productId=11&userId=11222@GetMapping("/order/create")public String createOrder(@RequestParam Integer productId, @RequestParam Integer userId) {// 调用商品服务,通过商品ID获取商品名称String productName = productService.getProductName(productId);// 调用用户服务,通过用户ID获取用户名称String userName = userService.geUserName(userId);HashMap<String, Object> map = new HashMap<>();map.put("商品名称", productName);map.put("用户名称", userName);return JSON.toJSONString(map);}
}
四、产品服务
4.1. product依赖
 <!-- SpringCloud Openfeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--springmvc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
4.2. 配置
server:port: 8000
spring:application:name: order-servcloud:nacos:discovery:service: order-servserver-addr: localhost:8848zipkin:base-url: http://zipkin.server.com:9411/ # 服务端地址discovery-client-enabled: falsesender:type: web                      # 数据传输方式,web 表示以 HTTP 报文的形式向服务端发送数据sleuth:sampler:probability: 1.0            # 收集数据百分比,默认 0.1(10%)#请求处理的超时时间
ribbon:ReadTimeout: 10000ConnectTimeout: 10000# feign 配置
feign:sentinel:enabled: trueokhttp:enabled: truehttpclient:enabled: falseclient:config:default:connectTimeout: 10000readTimeout: 10000compression:request:enabled: trueresponse:enabled: true# 暴露监控端点
management:endpoints:web:exposure:include: '*'
4.3. 控制层
package com.gblfy.product.controller;import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class ProductController {//http://localhost:9000/product/" + productId@GetMapping("/product/{productId}")public String getProductName(@PathVariable Integer productId) {// 调用用户服务,通过用户ID获取用户名称return "IPHOME13 的商品ID:" + productId;}
}
五、用户服务
5.1.user依赖
 <!-- SpringCloud Openfeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--springmvc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
5.1.user配置
server:port: 15000
spring:cloud:nacos:discovery:service: user-servserver-addr: localhost:8848zipkin:base-url: http://zipkin.server.com:9411/ # 服务端地址discovery-client-enabled: falsesender:type: web                      # 数据传输方式,web 表示以 HTTP 报文的形式向服务端发送数据sleuth:sampler:probability: 1.0            # 收集数据百分比,默认 0.1(10%)application:name: user-serv
5.3.控制层
package com.gblfy.user.controller;import com.gblfy.user.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class UserController {private final UserService userService;@GetMapping("/user/{userId}")public String getUserName(@PathVariable Integer userId) {return userService.getUserName(userId);}
}
六、测试验证
6.1. 访问

http://localhost/order/order/create?productId=22&userId=11

在这里插入图片描述

6.2. 控制出台日志

在这里插入图片描述

在这里插入图片描述

6.3. 服务端监控

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

开源地址:
https://gitee.com/gb_90/micro-service-parent

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源巨头 SUSE 收购 Rancher Labs,云原生时代来临

作者 | 马超责编 | 伍杏玲封图 | rancher.com官网出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近日&#xff0c;全球最大的独立开源公司SUSE宣布收购云原生初始公司Rancher Labs。针对此交易&#xff0c;SUSE首席执行官Melissa Di Donato表示&#xff1a;“我们…

小程序开发(8)-之跳转第三方小程序设计

嗯嗯&#xff0c;这个其实没什么好说&#xff0c;但还是说说我们项目的做法&#xff0c;因为我们这里需要跳转的小程序挺多的&#xff0c;所以我们采用了在后台配置的&#xff0c;像图一一样&#xff0c;配置名称、appid、跳转的页面地址等 wx.navigateToMiniProgram({appId: …

使用函数计算三步实现深度学习 AI 推理在线服务

目前深度学习应用广发&#xff0c; 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景。本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖、一键部署、本地调试以及压测评估&#xff0c; 全方位展现函数计算…

仅用 2 年过渡到自研 ARM 芯片,苹果的底气从何而来?

作者 | Steven Sinofsky译者 | 弯月&#xff0c;责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;今年 WWDC 2020 上&#xff0c;苹果宣布自研 ARM 芯片——Apple Silicon&#xff0c;对于苹果而言&#xff0c;Apple Silicon很…

Flink SQL 如何实现数据流的 Join?

无论在 OLAP 还是 OLTP 领域&#xff0c;Join 都是业务常会涉及到且优化规则比较复杂的 SQL 语句。对于离线计算而言&#xff0c;经过数据库领域多年的积累&#xff0c;Join 语义以及实现已经十分成熟&#xff0c;然而对于近年来刚兴起的 Streaming SQL 来说 Join 却处于刚起步…

小程序开发(9)-之地图组件map、导航

map用起来真的一言难尽呀&#xff0c;按照官方文档说是可以支持传入一个setting&#xff0c;来配置所以的属性的。。&#xff0c;但是我试了没效果&#xff0c;经纬度更新了&#xff0c;调试代码看到的wxml经纬度也变化了&#xff0c;但是map上的经纬度却没变化&#xff0c;后来…

惊魂48小时,阿里工程师如何紧急定位线上内存泄露?

阿里妹导读&#xff1a;云计算场景下的大规模分布式系统中&#xff0c;网络异常、磁盘IO异常、时钟跳变、操作系统异常乃至软件本身可能存在bugs等&#xff0c;均给分布式系统正确运行带来了挑战。持续的监控报警完善是打造稳定高可用分布式系统过程中非常重要的工作&#xff0…

我的程序跑了 60 多小时,就是为了让你看一眼 JDK 的 BUG 导致的内存泄漏

来源 | why技术荒腔走板大家好&#xff0c;我是 why&#xff0c;老规矩&#xff0c;先来一个简短的荒腔走板&#xff0c;给冰冷的技术文注入一丝色彩。上面图片中这个正在奔跑的少年&#xff0c;是正在参加校运会的我&#xff0c;那一年我 18 岁&#xff0c;高三。参加的项目是…

Flutter+Serverless端到端研发架构实践

Serverless&#xff08;无服务架构&#xff09;被誉为下一代云计算&#xff0c;自概念推出以来&#xff0c;因为能带来研发交付速度提升与成本的降低在业内异常火爆。闲鱼客户端基于Flutter进行架构演进与创新&#xff0c;通过Flutter统一Android和iOS双端提升研发效能之后&…

Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

导读&#xff1a;从问题本身出发&#xff0c;不局限于 Go 语言&#xff0c;探讨服务器中常常遇到的问题&#xff0c;最后回到 Go 如何解决这些问题&#xff0c;为大家提供 Go 开发的关键技术指南。我们将以系列文章的形式推出《Go 开发的关键技术指南》&#xff0c;共有 4 篇文…

小程序开发(10)-之热力图解决方案、手绘图

原本是用别人用canvas画的热力图的https://github.com/rover95/wxapp-heatmap&#xff0c;但是问题有点多&#xff0c;热力图的颜色&#xff0c;卡顿、叠加、渲染失败等&#xff0c;所以就弃用了&#xff0c;也找了好久&#xff0c;好像大家都没有更好的提议&#xff0c;自己也…

windows下mysql8.x配置远程连接

文章目录1. 现象2. 登录mysql3.先查看下当前的用户&#xff0c;具有什么权限4.创建新的用户之后再查权限5. 赋予权限6.刷新权限&#xff0c;然后就可远程访问了1. 现象 Host ‘192.168.0.103’ is not allowed to connect to this MySQL server mysql8.x配置远程连接 2. 登…

Spark整合Ray思路漫谈

什么是Ray 之前花了大概两到三天把Ray相关的论文&#xff0c;官网文档看了一遍&#xff0c;同时特意去找了一些中文资料看Ray当前在国内的发展情况&#xff08;以及目前国内大部分人对Ray的认知程度&#xff09;。 先来简单介绍下我对Ray的认知。 首先基因很重要&#xff0c…

建设数据中台之前,建议先看这份企业数据能力测评 | 大咖说中台

作者 | 耿立超来源 | 《大数据平台架构与原型实现&#xff1a;数据中台建设实战》“我的企业目前在数据应用上处于什么水平&#xff1f;接下来应该朝哪个方向努力&#xff1f;”本文试图帮助企业决策者和IT负责人解答这一问题。今天&#xff0c;数据之于企业的重要性已经勿须多…

如何让 python 处理速度翻倍?内含代码

阿里妹导读&#xff1a;作为在日常开发生产中非常实用的语言&#xff0c;有必要掌握一些python用法&#xff0c;比如爬虫、网络请求等场景&#xff0c;很是实用。但python是单线程的&#xff0c;如何提高python的处理速度&#xff0c;是一个很重要的问题&#xff0c;这个问题的…

Zipkin 存储追踪数据至 MySQL

下载zipkin-mysql数据库脚本 https://github.com/openzipkin/zipkin/tree/master/zipkin-storage/mysql-v1/src/main/resources 创建数据库名称为zipkin&#xff0c;字符集编码&#xff1a;utf8mb4 初始化脚本 -- -- Copyright 2015-2019 The OpenZipkin Authors -- -- Licen…

Spring Cloud Alibaba 新一代微服务解决方案

本篇是「跟我学 Spring Cloud Alibaba」系列的第一篇&#xff0c; 每期文章会在公众号「架构进化论」进行首发更新&#xff0c;欢迎关注。 1、Spring Cloud Alibaba 是什么 Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案&#xff0c;是阿里巴巴开源中间件…

它估值25亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!

最近一条新闻被炒的沸沸扬扬&#xff1a;十年以来中国最大IPO&#xff0c;中芯国际将融资532亿元&#xff01;何为IPO&#xff1f;翻译即为一家公司第一次向全社会公开售出它的股份。买的人越多&#xff0c;代表着社会对其信心越大。为什么2020年&#xff0c;能爆发这样1场最大…

RabbitMQ 最新版安装 (Linux环境)

文章目录一、Erlang1. Erlang下载2. Erlang 上传并解压3. 验证rabbitmq依赖是否安装4. 安装rabbitmq依赖5. Erlang 编译、安装6. Erlang 配置环境变量7. Erlang 验证二、RabbitMQ2.1. RabbitMQ 下载2.2. RabbitMQ 上传并解压2.3. RabbitMQ 配置2.4. 配置环境变2.5. 启动 Rabbit…

双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

导读&#xff1a;作为一支深耕多年链路追踪技术 (Tracing) 与性能管理服务 (APM) 的团队&#xff0c;阿里巴巴中间件鹰眼团队的工程师们见证了阿里巴巴基础架构的多次升级&#xff0c;每一次的架构升级都会对系统可观测性能力 (Observability) 带来巨大挑战&#xff0c;而这次的…