Zipkin+Rabbitmq结合springboot2.0版本详细搭建流程

下载Zipkin的jar包

zipkin下载链接

启动Zipkin

java -jar zipkin-server-2.10.4-exec.jar 
--zipkin.collector.rabbitmq.addresses=192.168.23.134
--zipkin.collector.rabbitmq.username=账号
--zipkin.collector.rabbitmq.password=密码

在这里插入图片描述
这样我们的Zipkin就ok了,接下来就是搭建client端。

Client端的搭建

首先我们选择的版本:
springboot:2.0.2.RELEASE
springcloud:Finchley.RELEASE

然后在consumer和product的pom文件和配置文件都是一样的。

pom文件的依赖

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-zipkin</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
		</dependency>

配置的内容:

spring.zipkin.sender.type= rabbit
spring.rabbitmq.host=192.168.23.136
spring.rabbitmq.port=5672
spring.rabbitmq.username=xxxx
spring.rabbitmq.password=xxxx
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.virtual-host=/

consumer的目录结构:
在这里插入图片描述
ConsumerOrderApplication代码:

@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class ConsumerOrderApplication {
	public static void main(String[] args) {
		SpringApplication.run(ConsumerOrderApplication.class, args);
	}
	@RequestMapping(value = "service2", method = RequestMethod.GET)
	public String service2() {
		return "Hi,I'm Service2!";
	}
}

product的目录结构:
在这里插入图片描述
ProductApplication代码:

@EnableEurekaClient
@SpringBootApplication
@RestController
public class ProductApplication {
	public static void main(String[] args) { 
		SpringApplication.run(ProductApplication.class, args);
	}
	@Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
    @RequestMapping(value = "service1", method = RequestMethod.GET)
    public String service1() {
        return restTemplate().getForObject("http://e-book-consumer-order/service2", String.class);
    }
}

然后启动你的eureka,zipkin,consumer,product。

注意,这里启动过后可能你的consumer和product都还没有连接rabbitmq成功,所以要等,我在这里卡了很久,后来才发现要等很久,我差不多等了3-4分钟rabbitmq才连接成功。你可以看下:
在这里插入图片描述
如果有三个说明连接成功了。

访问http://localhost:8084/service1
刷新zipkin。
在这里插入图片描述
出现这个说明链路跟踪成功!
感谢大家的观看,如果有交流的小伙伴可以私信我或者加我的qq997355706。

发布了80 篇原创文章 · 获赞 7 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_42332821/article/details/104076623
今日推荐