SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
本文源码:GitHub·点这里 || GitEE·点这里
一、链路追踪简介
1、Sleuth组件简介
Sleuth是SpringCloud微服务系统中的一个组件,实现了链路追踪解决方案。可以定位一个请求到底请求了哪些具体的服务。在复杂的微服务系统中,如果请求发生了异常,可以快速捕获问题所在的服务。
2、项目结构
- 启动顺序如下
* 注册中心
node07-eureka-7001
* 链路数据收集服务
node07-zipkin-7003
* 服务提供
node07-provider-6001
node07-provider-6002
* 网关路由
node07-zuul-7002
二、搭建链路服务
1、核心依赖
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
- 启动类注解:@EnableZipkinServer
2、配置文件
server:
port: 7003
spring:
application:
name: node07-zipkin-7003
eureka:
instance:
hostname: zipkin-7003
prefer-ip-address: true
client:
service-url:
defaultZone: http://registry01.com:7001/eureka/
三、服务配置
这里网关,zuul-7002,服务提供,provider-6001,provider-6002的配置相同。
1、核心依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2、配置文件
spring:
zipkin:
base-url: http://localhost:7003
sleuth:
sampler:
# 数据 100% 上传
percentage: 1.0
四、测试流程
1、注册中心
一次启动上述服务之后,查看注册中心:
2、请求流程
访问接口
http://localhost:7002/v1/api-6001/get6001Info
这个请求从网关服务进入,到达6001端口服务之后,请求6002端,最终返回结果。
- 6001接口
@Autowired
private RestTemplate restTemplate ;
@RequestMapping("/get6001Info")
public String get6001Info (){
String server_name = "http://node07-provider-6002" ;
return restTemplate.getForObject(server_name+"/get6002Info",String.class) ;
}
- 6002接口
@RequestMapping(value = "/get6002Info",method = RequestMethod.GET)
public String get6002Info () {
LOG.info("provider-6002");
return "6002Info" ;
}
3、链路管理界面
1)、UI界面
访问接口
http://localhost:7003/zipkin/
2)、依赖分析
如图点击,【依赖分析】,和上面描述的请求过程完全一致。
五、源代码地址
GitHub·地址
https://github.com/cicadasmile/spring-cloud-base
GitEE·地址
https://gitee.com/cicadasmile/spring-cloud-base

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
SpringCloud微服务(06):Config组件,实现配置统一管理
本文源码:GitHub·点这里 || GitEE·点这里 一、Config简介 在微服务系统中,服务较多,相同的配置:如数据库信息、缓存、参数等,会出现在不同的服务上,如果一个配置发生变化,需要修改很多的服务配置。spring cloud提供配置中心,来解决这个场景问题。 系统中的通用配置存储在相同的地址:GitHub,Gitee,本地配置服务等,然后配置中心读取配置以restful发布出来,其它服务可以调用接口获取配置信息。 二、配置服务端 1、项目结构 核心注解:@EnableConfigServer 2、核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> 3、核心配置文件 这里注意读取文件的配置 active :native,读取本地配置; active :git,读网络仓库配置; server: port...
-
下一篇
阿里云安全肖力:云原生安全构筑下一代企业安全架构
"数字经济的发展驱动越来越多的企业上云,每个企业都会基于云原生安全能力构筑下一代企业安全架构,完成从扁平到立体式架构的进化,届时云原生安全技术红利也将加速释放!”9月27日,阿里云智能安全事业部总经理肖力在2019杭州云栖大会·云安全峰会上指出。 肖力强调,云原生安全技术会默认植入在下一代企业安全架构的每个模块,从而升级整体安全水位。 阿里云智能安全事业部总经理肖力 一个立体式的安全架构 峰会现场,肖力正式发布了《阿里云安全白皮书4.0》,用“五横两纵”的方式展示了下一代企业安全架构所应具备的核心能力。 从横向角度看,用户需要搭建以业务需求为导向的递进式安全体系,从最底层的云平台安全,到用户侧逐级向上的基础安全、数据安全、应用安全和业务安全。在这之中,云原生安全技术可以通过产品功能或安全服务的形式默认沉淀在每个架构模块中,让企业获得云原生安
相关文章
文章评论
共有0条评论来说两句吧...