Zipkin 服务搭建有多种方式:使用官方提供了可直接启动的 Jar 包,通过 Docker 镜像运行,或者自己手动添加依赖创建 Zipkin 服务器应用。

    不过到了 spring-boot 2.0 后官方就不推荐自己通过手动添加依赖创建 Zipkin 服务器应用了。所以本文主要介绍前面两种方式。


一、基本介绍

1,什么是 Zipkin?

(1)Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现。可以用来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高的问题,找出系统性能瓶颈的根源。

(2)除了面向开发的 API 接口之外,它也提供了方便的 UI 组件来帮助我们直观地搜索跟踪信息和分析请求链路明细,比如:可以查询某段时间内各用户请求的处理时间等。


2,Zipkin 基础架构

下图展示了 Zipkin 的基础架构,它主要由 个核心组件构成:

  • Collector:收集器组件,它主要用于处理从外部系统发送过来的跟踪信息,将这些信息转换为 Zipkin 内部处理的 Span 格式,以支持后续的存储、分析、展示等功能。
  • Storage:存储组件,它主要对处理收集器接收到的跟踪信息,默认会将这些信息存储在内存中,我们也可以修改此存储策略,通过使用其他存储组件将跟踪信息存储到数据库中。
  • RESTful APIAPI 组件,它主要用来提供外部访问接口。比如给客户端展示跟踪信息,或是外接系统访问以实现监控等。
  • Web UIUI 组件,基于 API 组件实现的上层应用。通过 UI 组件用户可以方便而有直观地查询和分析跟踪信息。java项目www.fhadmin.org


二、通过 Jar 包运行

1,下载 jar 包

(1)首先我们访问官方提供的 Jar 包下载页面(https://dl.bintray.com/openzipkin/maven/io/zipkin/zipkin-server/)java项目www.fhadmin.org:


(2)选择 exec.jar 结尾的 jar 下载即可:


2,运行 jar 包

(1)下载后执行如下命令启动服务,默认端口为 9411

1

java -jar zipkin-server-2.19.3-exec.jar


(2)或者我们也可以执行如下命令将 Zipkin 服务作为守护进程后台运行:

1

nohup java -jar zipkin-server-2.19.3-exec.jar &


(3)启动后通过浏览器访问 http://IP:9411,则可以看到如下图所示的 Zipkin 管理页面:


3,参数设置

(1)如果需要改用其他端口(比如 8888),则可以执行如下命令启动服务:

1

java -jar zipkin-server-2.19.3-exec.jar --server.port=8888


(2)如果想让 Zipkin 服务端能够从消息中间件(比如 RabbitMQ)java项目www.fhadmin.org获取跟踪信息,可以执行如下命令启动服务:

java -jar zipkin-server-2.19.3-exec.jar --zipkin.collector.rabbitmq.addresses=192.168.60.133:5672 --zipkin.collector.rabbitmq.username=hangge --zipkin.collector.rabbitmq.password=123


(3)启动后查看 RabbitMq Web 控制台的 Queues 选项,可以看到创建了一个名为 zipkin 的队列,也是 Zipkin 默认的监听队列:


三、通过 Docker 镜像运行

1,下载镜像

执行如下命令拉取镜像到本地:

1

docker pull openzipkin/zipkin


2,运行容器

(1)镜像下载后执行如下命令运行,服务端口为 9411

1

docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin


(2)如果想让 Zipkin 服务端能够从消息中间件(比如 RabbitMQ)获取跟踪信息,可以执行如下命令运行容器:

1

docker run --name zipkin -d -p 9411:9411 -e RABBIT_ADDRESSES=192.168.60.133:5672 -e RABBIT_USER=hangge -e RABBIT_PASSWORD=123 openzipkin/zipkin


(3)如果每次都要使用 docker 命令来分别启动 zipkin 容器还是略显繁琐,我们也可以通过 Docker Compose 进行启动,docker-compose.yml 文件内容如下:

version: '2'services:  zipkin:    image: openzipkin/zipkin    container_name: zipkin    environment:      - RABBIT_ADDRESSES=192.168.60.133:5672      - RABBIT_USER=hangge      - RABBIT_PASSWORD=123    ports:      - 9411:9411


©著作权归作者所有:来自51CTO博客作者fhspringcloud的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. 微服务时代组件化和服务化的抉择
  2. 选择器优先级、模块化样式组件、伪类选择器
  3. Balloon-popping:一个基于Zynq架构,OpneCV库的目标跟踪系统
  4. 第三课 选择器、模块化组件、伪类选择器
  5. 在苹果Mac上的Safari浏览器中如何阻止跨站跟踪?
  6. Docker基本组件、概念介绍
  7. 开源项目,动作识别的开源框架Sense + 多对象目标跟踪神器火热出炉
  8. CSS:选择器优先级、前端组件样式模块化原理实现、常用伪类选择器
  9. spring cloud alibaba 组件版本关系

随机推荐

  1. Android ndk开发时查看编译器预定义宏
  2. Android : SeekBar 实现图片旋转缩放
  3. Android SDK安装教程
  4. android:launchMode="singleTask"
  5. Android中G-Sensor相关流程
  6. android listiew适配器
  7. android小问题:RadioButton设置文字在图片
  8. Cocos2d-x3.0 捕捉Android的菜单键和返回
  9. Android Webview适配屏幕宽度
  10. Android 数据存储02之文件读写