为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第20天 搭建 Zipkin Server 实现对跟踪信息的收集

课程名称:Spring Cloud / Alibaba 微服务架构实战

课程章节:第8章-搭建 Zipkin Server 实现对跟踪信息的收集

课程讲师:张勤一

课程内容:

1. 搭建 Zipkin Server

下载安装jar包

​ 官方地址:https://zipkin.io/pages/quickstart

curl -sSL https://zipkin.io/quickstart.sh | bash -s
//临时启动
java -jar zipkin.jar
//守护进程启动
nohup java -jar zipkin.jar &

登录查看:http://ip:9411/zipkin/
注意开放端口,否则无法访问。
配置Zipkin Server

  • 默认情况下,Zipkin Server将跟踪信息存储在内存中(JVM),重启后就会丢失。
  • Zipkin Server 默认采用的是HTTP方式跟踪数据,性能较差。

2.1 Zipkin Server 配置MySQL跟踪数据持久化。

  1. 下载sql文件,创建数据库,执行SQL文件

    https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

  2. 启动

java -jar zipkin.jar --STORAGE_TYPE=mysql --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=xxxxx --MYSQL_DB=imooc_zipkin

启动报错,请先关闭之前启动的zipkin
netstat -lnp|grep 9411 //查看进程编号
kill -9 123456 //根据编号停用进程

2 SpringCloud Sleuth 整合 Zipkin 实现分布式链路跟踪、收集

  • 利用Kafka作为跟踪数据的通信工具
//启动kakfa内置的zk
bin/zookeeper-server-start.sh config/zookeeper.properties
//启动kafak
bin/kafka-server-start.sh config/server.properties
//重启zipkin
java -DKAFKA_BOOTSTRAP_SERVERS=127.0.0.1:9092 -jar zipkin.jar --STOARGE_TYPE=mysql --MYSQL_HOST=127.0.0.1:3306 --MYSQL_USER=root --MYSQL_PASS=xxxx --MYSQL_DB=imooc_zipkin
  1. 添加pom依赖
<!--spring-cloud-starter-zipkin = spring-cloud-starter-sleuth + spring-cloud-sleuth-zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>2.5.0.RELEASE</version>
</dependency>
  • springboot启动报关与kafka的错误信息
Connection to node 0 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

//修改kafka中server.properties的如下信息
############################# Socket Server Settings #############################

# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://0.0.0.0:9092

# Hostname and port the broker will advertise to producers and consumers. If not set, 
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://公网ip:9092

按顺序重启所有服务,zk-kafka-zipkin

课程截图:589词

img

img

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消