27.Spring Cloud Sleuth使用消息中间件收集数据

前面已经介绍了使用HTTP直接收集跟踪数据,下面演示使用消息中间件收集跟踪数据。相比HTTP的方式。消息中间件有以下好处:

微服务与ZipkinServer解耦,微服务无须知道ZipkinServer的网络地址。

一些场景下,ZipkinServer与微服务网络可能不同,使用HTPP直接收集的方式无法工作,此时可借助消息中间件实现数据收集。

ZipkinServer

pom.xml

	<!--zipkin相关依赖 -->
		<dependency>
			<groupId>io.zipkin.java</groupId>
			<artifactId>zipkin-autoconfigure-ui</artifactId>
		</dependency>

		<dependency>
			<groupId>io.zipkin.java</groupId>
			<artifactId>zipkin-server</artifactId>
		</dependency>

		<!--集成消息中间件 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
		</dependency>

application.properties

需要添加消息中间件连接信息(以rabbitmq为例)

server.port=9411
#注册中心地址
eureka.client.serviceUrl.defaultZone=http://testhost:8000/eureka/,http://testhost2:8001/eureka/
#把客户端的检测检测交给actuator来完成
eureka.client.healthcheck.enabled=true
spring.application.name=zipkin-server

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=springcloud
spring.rabbitmq.password=123456

启动类

package com.niugang;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer;


/**
 * zipserver启动类
 * @author niugang
 *
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableZipkinStreamServer
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

各微服务需要调整的地方

pom.xml

<!--分布式追踪 -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-sleuth-stream</artifactId>
</dependency>

application.properties

需要添加消息中间件连接信息(以rabbitmq为例)


#指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问
spring.application.name=ribbon-consumer-trace-zipkin
server.port=9001
#负载平衡RestTemplate可以配置为重试失败的请求。默认情况下,该逻辑被禁用
spring.cloud.loadbalancer.retry.enabled=true
#注册中心地址
eureka.client.serviceUrl.defaultZone=http://testhost:8000/eureka/
logging.level.root=info
#注意:您可以设置logging.level.org.springframework.web.servlet.DispatcherServlet = DEBUG,而不是在处理程序中明确记录请求。
logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG
spring.sleuth.sampler.percentage=1.0
#rabbitmq相关配置
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=springcloud
spring.rabbitmq.password=123456

配置以上,启动注册中心,zipkinserver,各个微服务。访问http://localhost:9411/查看追踪收集的数据。

   

                                                                             微信公众号: 

                                               

                                                                             JAVA程序猿成长之路

                                  分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值