SpringCloud微服务组件——Sleuth快速入门

Sleuth

Sleuth的作用

在整个微服务的请求链路中,为了方便查询整个链路的日志信息,可以采用Sleuth去收集日志信息,并且在配合Zipkin去以图形化界面站式,方便定位问题所在。

Sleuth入门(入门即结束)

导入依赖

<dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-starter-sleuthartifactId>
dependency>

编写配置文件

 logging:
  level:
    org.springframework.web.servlet.DispatcherServlet: DEBUG

查看日志

  • [SEARCH,d59da7a303b25c09,525df895291cea9e,false]
  • SEARCH:服务名
  • d59da7a303b25c09:总链路id
  • 525df895291cea9e:子链路id
  • false:没有输出日志信息
Zipkin入门

安装Zipkin

version: "3.1"
services:
 zipkin: 
  image: 10.0.134.175:5000/zipkin:latest
  restart: always
  container_name: zipkin
  ports:
    - 9411:9411

修改服务信息

导入依赖

<dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-starter-zipkinartifactId>
dependency>

编写配置文件

spring:
 zipkin:
    base-url: http://10.0.131.23:9411   # 指定zipkin的地址信息
    sender:
      type: web						# 指定发送日志信息的方式是Http方式(坑)
  sleuth:
    sampler:
      probability: 1				# 指定Sleuth收集日志的比例 1 - 100%
Sleuth整合RabbitMQ和ES

服务发送Sleuth的信息给Zipkin时的效率问题:

  • 默认情况下,通过Http的请求方式,将日志信息发送给Zipkin。
  • 可以采用消息队列的方式,将消息发送给Zipkin。
    实现:
  • 服务:只需要修改配置文件,将sender.type修改成rabbit。
  • zipkin:给zipkin的docker-compose.yml添加RabbitMQ的信息。
    Zipkin无法持久化日志信息问题:
  • 默认情况下,Zipkin会将数据存储在容器内部,容器挂掉,数据会丢失。
  • 可以将日志信息数据存储到其他的持久化数据库中,如:MySQL,ES。
    实现:
  • zipkin:修改zipkin的docker-compose.yml,添加持久化方式配置和ES的地址信息。

配置文件

spring:
 zipkin:
   sender:
     type: rabbit

docker-compose.yml

version: "3.1"
services:
  zipkin:
    image: daocloud.io/daocloud/zipkin:latest
    restart: always
    container_name: zipkin
    ports:
      - 9411:9411
    environment:
      - TZ=Asia/Shanghai					# 时区
      - RABBIT_ADDRESSES=10.0.131.23:5672    # RabbitMQ的信息
      - RABBIT_USER=openapi-admin			# RabbitMQ的信息
      - RABBIT_PASSWORD=openapi-admin		 # RabbitMQ的信息
      - RABBIT_VIRTUAL_HOST=openapi-admin	  # RabbitMQ的信息
      - STORAGE_TYPE=elasticsearch			 # 持久化方式
      - ES_HOSTS=http://10.0.131.23:9200	  # ES的地址信息

你可能感兴趣的:(springcloud,Java,Sleuth)