基本环境:
org.springframework.cloud
spring-cloud-dependencies
Finchley.RELEASE
pom
import
jdk1.8+
elasticsearch-6.5.0
kafka_2.11-2.3.0
zookeeper-3.4.14
背景:在zipkin对spring-boot-2.*.* 支持官方不推荐微服务实例启动,改用jar包直接使用 详情可从zipkin github论坛查看:https://github.com/openzipkin/zipkin
使用方式:https://zipkin.io/pages/quickstart.html
上图展示了 Zipkin 的基础架构,它主要由 4 个核心组件构成:
一、通过编译install zipkin-service
https://github.com/openzipkin/zipkin
进入zipkin根目录
Linux执行: ./mvnw -DskipTests --also-make -pl zipkin-server clean install
Windows执行: .\mvnw -DskipTests --also-make -pl zipkin-server clean install
(目前最新版本:2.15.1)
本次使用kafka(kafka_2.11-2.3.0)+es(elasticsearch-6.5.0)环境安装自行百度
日志消息支持:(activemq、kafka、rabbitmq、scribe) 在 **/zipkin-collector
持久化支持:(es、mysql、cassandra) 在**/zipkin-storage
执行:java -DKAFKA_BOOTSTRAP_SERVERS=localhost:9092 -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=localhost:9200 -jar zipkin-server-2.15.1-exec.jar --server.port=9411
其他参数设置可查看源码:
1、下载exec.jar包 直接运行:
下载地址:https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec
zipkin-server-2.12.9-exec.jar
2、启动zipkin-server
执行:java -DKAFKA_BOOTSTRAP_SERVERS=localhost:9092 -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=localhost:9200 -jar zipkin-server-2.15.1-exec.jar --server.port=9411
3、查看页面:http://localhost:9413/zipkin
三、客户端编写
1、先启动eureka(项目:putaoabc_api_v2.eureka)
然后启动3个终端(zipkin-client-test)
2、创建kafka的topic 为:zipkin(默认,如果更改需要更改全部相应配置)
文档kafka操作:https://blog.csdn.net/u010343544/article/details/78489371
3、访问(可多刷几次)http://localhost:8086/zipkin/111
4、查看zipkin-ui: http://localhost:9413/zipkin
关于整个系统的数据流转,大致可以用下面这张图来表示:
代码demo示例:
关注微信订阅号:git代码,文档均在里面
回复:
zipkin-client
zipkin-server
获取相应代码
其他安装包(回复即可获得):
(kafka、zookeeper、elasticsearch、ribbitmq、putty、winscp)
四、k8s部署zipkin服务器端 (可选,启动多个zipkin 通过kafka-client集群)
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zipkin
namespace: logging
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: zipkin
spec:
containers:
- name: zipkin
image: openzipkin/zipkin
ports:
- containerPort: 9411
hostPort: 9411
---
apiVersion: v1
kind: Service
metadata:
name: zipkin
namespace: logging
labels:
k8s-app: zipkin
spec:
type: NodePort # NodePort LoadBalancer
ports:
- port: 9411
targetPort: 9411
nodePort: 30002
selector:
k8s-app: zipkin