精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

读者福利

分享一份自己整理好的Java面试手册,还有一些面试题pdf

不要停下自己学习的脚步

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

口记录计时信息,以帮助进行延迟分析。它还包括不同的采样策略以管理导出到Zipkin的数据量。

口与参与通信的常见Spring组件集成,如servlet过滤器、异步端点、RestTemplate、消息通道、Zuul 过滤器和Feign客户端等。

将 Sleuth与应用程序集成

===============

要为应用程序启用Spring Cloud Sleuth功能,只需将spring-cloud-starter-sleuth启动器添加到依赖项即可。

org。springframework. cloud

spring-cloud- starter-sleuth

包含此依赖项之后,应用程序生成的日志条目的格式已更改。具体如下所示。

2017-12-30 00:21:31. 639

INFO [order-service, 9a3fef0169864e80 , 9a3fef0169864e80, false]

49212 — [ni0-8090- exec-6]

p.p.s.order。

controller.OrderController :

Products found: [(“id”:2, “name”:“Test2”, “price”:1500},

(“id”:9, “name” :“Test9”,“price”:245011

2017-12-30 00:21:31.683

INFO [order-service, 9a3fef0169864e80, 9a3fef0169864e80, false ]

49212 — [n10-8090- exec-6]

p.p.s.order。controller。OrderController :

Customer found: “id”:2, “name”:“Adam Smith”,

“typel”:“REGULAR”, “accounts”:

[(“id”:4, “number”:“1234567893”. “balance”:50001,

(“id”:5, “number” :“1234567894”, “balance”:0},

{“id”:6, “number”:“1234567895”, “balance”:50001]1

2017-12-30 00:21:31.684

INFO [order-service, 9a3fef01 69864e80, 9a3fef0169864e80, false]

49212 — [n1o-8090- exec-6]

p.p.s.order。controller。OrderController :

Discounted price:{“price”:3752}

2017-12-30 00:21:31.684

INFO lorder-service, 9a3fef0169864e80, 9a3fef0169864e80, false]

49212 — [n1o-8090- exec-6]

p.p.s.order。controller . OrderController :

Account found: {“id”:4, “number”: “1234567893”,“balance” :5000 }

2017-12-30 00:21:31.711

INFO [order-service, 58b06c4c412c76cc, 58b06c4c412c76cc, false]

49212 — [ni0-8090- exec-7]

p.p.s.order . controller . OrderController :

Order found:{“id”:4, “status”: “ACCEPTED” ,

“price”:3752, “customerId”:2, “accountId”:4, “prod uctIds”:[9,2]1

2017-12-30 00:21:31.722

INFO lorder-service, 58b06c4c412c76cc,58b06c4c412c76cc,false]

49212 — [n10-8090- exec-7]

p.p.s.order .controller.OrderController :

Account modified: {“accountId”:4, “price”:3752}

2017-12-30 00:21:31.723

INFO [order-service, 58b06c4c412c76cc, 58b06c4c412c76cc, falsel

49212 — [ni0-8090- exec-7]

p.p.s.order .controller .OrderController :

Order status changed: {“status”: “DONE”}

使用Kibana搜索事件

============

Spring Cloud Sleuth会自动将HTTP标头X .B3-Spanld和X- B3-Traceld添加到所有请求和响应中。这些字段也将作为spanld和traceld包含在MDC中。但在转移到查看Kibana仪表板之前,不妨来看一,看图9.5,这是一个顺序示意图,它说明了示例微服务之间的通信流程。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

order-service服务公开了两个可用的方法。第一个方法是创建新订单,第二个方法是确认订单。事实上,第一个POST 1方法将通过customer service服务直接从customer-service服务、produt-service 服务和account-service服务调用所有其他服务的端点。第二个PUT/{id}方法仅与account-service服务中的一个端点集成。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

现在可以通过存储在ELK堆栈中的日志条目来映射先前描述的流程。在使用Kibana作为日志聚合器的情况下,再加上由Spring Cloud Sleuth生成的字段,开发人员即可通过使用跟踪或跨度ID过滤它们来轻松查找条目。在图9.6所示的示例中,可以发现与POST方法调用的order-service 服务端点相关的所有事件,其X-B3-Traceld字段等于103c949877519c2。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

图9.7也是一个示例,它类似于上一个示例,但处理请求期间存储的所有事件都将发送到PUT/{id}端点。这些条目也已经被X-B3-Traceld字段过滤掉,X-B3-TraceId 字段的值等于7070b90bfb36c961。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

在图9.8中可以看到完整的字段列表,这些字段已由微服务应用程序发送到Logstash。Spring Cloud Sleuth库已将包含X-前缀的字段包含在消息中。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

集成 Sleuth和Zipkin

================

Zipkin是一种流行的开源分布式跟踪系统,它有助于收集分析基于微服务的架构中的延迟问题所需的计时数据。它能够使用用户界面Web控制台收集、查找和可视化数据。Zipkin用户界面提供了一个依赖关系图,显示系统中所有应用程序处理了多少个跟踪请求。Zipkin由4个元素组成,前面已经提到过其中一个,即Web用户界面。第二个是Zipkin收集器,它负责验证、存储和索引所有传入的跟踪数据。Zipkin 使用Cassandra作为默认的后端存储。它本身也支持Elasticsearch和MySQL.最后一个元素是查询服务,它提供了一个简单的JSONAPI,用于查找和检索跟踪。它主要由Web用户界面使用。

1.运行Zipkin服务器

开发人员可以通过多种方式在本地运行Zipkin 服务器。其中一种方法涉及使用Docker容器。以下命令将启动内存服务器实例。

docker run -d --name zipkin -P 9411: 9411 openzipkin / zipkin

在运行Docker容器之后,Zipkin API在htp://192.1/8.99.100:9411可用。或者,也可以使用Java库和Spring Boot应用程序启动它。要为应用程序启用Zipkin,应该将以下依赖项包含在Maven的pom.xml文件中,如以下代码片段所示。默认版本由spring-cloud-dependencies管理。具体到本示例应用程序,则使用了Edgware.RELEASE Spring Cloud版本列车。

io.zipkin.java

zipkin-server

</ dependency>

io.zipkin.java

zipkin-autoconfigure-ui

</ dependency>

在本示例系统中添加了一个新的zipkin-service 模块。这很简单,唯一需要实现的是应用程序main类,它使用@EnableZipkinServer进行注解。由于这个原因,Zipkin 实例将嵌入Spring Boot应用程序中。

@SpringBootApplication

@EnableZipkinServer

public class zipkinApplication

public static void main(string[] args)

new

SpringApplicationBuilder (ZipkinApplication.class) .web(true) .run(args);

}

}

为了在其默认端口上启动Zipkin 实例,必须覆盖application.yml文件中的默认服务器端口。启动该应用程序之后,可在htp:/:ocalhost:9411处使用Zipkin API。

spring:

application:

name: zipkin-service

server:

port: S[PORT:94111

2.构建客户端应用程序

如果要在项目中同时使用Spring Cloud Sleuth 和Zipkin,则只需在依赖项中添加spring-cloud starter zipkin启动器即可,它将启用通过HTTP API与Zipkin的集成。如果已将Zipkin服务器作为Spring Boot应用程序内的嵌入式实例启动,则不必提供包含连接地址的任何其他配置。如果使用Docker 容器,则应覆盖pplicationyml中的默认URL。

spring:

zipkin:

baseUrl: http://192.168.99. 100:9411/

开发人员始终可以利用与服务发现的集成。如果通过@EnableDiscoveryClient为使用嵌入式Zipkin服务器的应用程序启用了发现客户端,则可以将属性spring zipkin locator.discovery.enabled设置为true.在这种情况下,即使它在默认端口下不可用,所有应用程序也可以通过已注册名称对其进行本地化。开发人员还应该使用spring zipkinbaseUrl属性覆盖默认的Zipkin应用程序名称。

总结

一般像这样的大企业都有好几轮面试,所以自己一定要花点时间去收集整理一下公司的背景,公司的企业文化,俗话说「知己知彼百战不殆」,不要盲目的去面试,还有很多人关心怎么去跟HR谈薪资。

这边给大家一个建议,如果你的理想薪资是30K,你完全可以跟HR谈33~35K,而不是一下子就把自己的底牌暴露了出来,不过肯定不能说的这么直接,比如原来你的公司是25K,你可以跟HR讲原来的薪资是多少,你们这边能给到我的是多少?你说我这边希望可以有一个20%涨薪。

最后再说几句关于招聘平台的,总之,简历投递给公司之前,请确认下这家公司到底咋样,先去百度了解下,别被坑了,每个平台都有一些居心不良的广告党等着你上钩,千万别上当!!!

Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。
在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

pring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。
[外链图片转存中…(img-7sSGlu40-1715700531404)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值