0、目录


整体架构目录:ASP.NET Core分布式项目实战-目录

监控目录:微服务监控zipkin、skywalking以及日志ELK监控系列

一、zipkin介绍


zipkin是一种分布式跟踪系统,有助于收集微服务架构中的延迟问题所需要的时序数据(收集查找),收集微服务之间的调用情况,然后处理调用之间数据延迟等问题。

如下图:微服务调用情况深度。(官方文档图)

以及依赖图分析,会展示出微服务之间的调用关系。当然下图展示的是我案例中的图片

二、zipkin作用


1、全链路追踪工具(查看依赖关系)

2、查看每个接口、每个service的执行速度(定位问题发生点或者寻找性能瓶颈)

zipkin包含:
         收集器(Collector):主要是收集微服务所产生的数据(收集器有:http、kafka、rabbitmq)
   UI(界面):主要是展示数据的界面
   Storage(存储):存储数据(es、mysql、内存、cassandra)
        in-memory:仅供测试
        JDBC(mysql):数据采集量很大,查询速度会比较慢。
        Cassandra:zipkin最初始内建的存储(扩展性好、schema灵活)
        (推荐)Elasticsearch:被用于大规模,数据量大的,存储形式json。
  API:查看/检索 数据的接口,主要用于WebUI中

 结构图:

流程解释:
1、transport作用:收集trace的services的spans,并将它们转化为zipkin common span
2、zipkin核心数据结构
Annotation:用于定位一个request的开始和结束,计算调用延迟。
cs:Client Start,表示客户端发起请求,一个span的开始
sr:Server Receive,表示服务端收到请求
ss:Server Send,表示服务端完成处理,并将结果发送给客户端
cr:Client Received,表示客户端获取到服务端返回信息

注意:时间点计算
sr-cs:网络延迟
ss-sr:逻辑处理时间
cr-cs:整个流程时间


三、asp.net core 部署zipkin

1、需要在每个微服务框架中加入zipkin分布式跟踪系统

此项目会新建两个项目一个是 demo1,一个是demo2

2、nuget包安装:

zipkin4net(追踪器)
zipkin4net.middleware.aspnetcore(aspnetcore 中间件)

3、项目中的 Startup.cs 里面Configure方法中注册中间件

4、配置startup.cs之后还需要配置RPCTraceHandler

即在发送Get/Post请求的HttpClient中添加追踪处理者,至此 asp.net core部署完成。

5、上面部署的的只是demo1 服务,因此同样的方式部署demo2项目。

6、现在docker部署zipkin

数据存储方式:内存(仅测试)
docker 命令: docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin

部署成功后 在浏览器中打开 ,这边我采用的是虚拟机,因此打开地址为 192.168.216.135:9411

7、至此部署完成

我们在 asp.net core项目的控制其中写上调用demo2   api/values 的接口地址

追踪在zipkinUI 上面呈现如下:

图1、

图2、

图3:依赖分析

8、此zipkin 部署是存在内存中的,不适合正式环境

注:一旦数据量上去后,zipkin容易被压崩掉。
因此需要其他解决方案代替。

目前楼主我采用的解决方案是kafka+zipkin+es。如果有更好的解决方案可以尝试。


 

项目demo代码:

 github: zipkinTraceDemo

参考资料:
官网文档:https://zipkin.io/pages/architecture.html
ZIPKIN API 接口:https://zipkin.io/zipkin-api/#/


asp.net Core 交流群:787464275 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

微服务监控zipkin+asp.net core的更多相关文章

  1. 微服务介绍及Asp.net Core实战项目系列之微服务介绍

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.微服务选型 在做微服务架构的技术选型的时候,我们以“无侵入”和“社区活跃”为主要的考量点,将来升级为原子服务架构.量子服务架构 ...

  2. 微服务监控zipkin、skywalking以及日志ELK监控系列

    0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.目录 1.zipkin监控 2.skywalking监控 3.ELK日志监控 asp.net Core 交流群:78746 ...

  3. 微服务介绍及Asp.net Core实战项目系列

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 二.目录 0.微服务介绍 1.RESTful API 规范介绍 2.asp.net core介绍及swagger使用 3.asp. ...

  4. 第七模块 :微服务监控告警Prometheus架构和实践

    119.监控模式分类~1.mp4 logging:日志监控,Logging 的特点是,它描述一些离散的(不连续的)事件. 例如:应用通过一个滚动的文件输出 Debug 或 Error 信息,并通过日志 ...

  5. windows 服务中托管asp.net core

    在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...

  6. [转帖]以Windows服务方式运行ASP.NET Core程序

    以Windows服务方式运行ASP.NET Core程序 原作者blog: https://www.cnblogs.com/guogangj/p/9198031.htmlaspnet的blog 需要持 ...

  7. SpringCloud微服务实战——搭建企业级开发框架(四十四):【微服务监控告警实现方式一】使用Actuator + Spring Boot Admin实现简单的微服务监控告警系统

      业务系统正常运行的稳定性十分重要,作为SpringBoot的四大核心之一,Actuator让你时刻探知SpringBoot服务运行状态信息,是保障系统正常运行必不可少的组件.   spring-b ...

  8. SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控

      无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...

  9. 使用 Spring Cloud Sleuth、Elastic Stack 和 Zipkin 做微服务监控

    关于迁移微服务架构,最常被提及的挑战莫过于监控.每个微服务应独立于其他服务的运行环境,所以他们之间不会共享如数据源.日志文件等资源. 然而,较容易的查看服务的调用历史,并且能够查看多个微服务的请求传播 ...

随机推荐

  1. (网页)Uncaught ReferenceError: pageImport is not defined

    在js开发中,很多人遇到类似问题,都找不到解决方法.Uncaught ReferenceError: $ is not defined,在这里给大家提供几个解决方法. 1.出现这个错误,最可能的是引用 ...

  2. LDA背景资料

    [https://zhuanlan.zhihu.com/p/30226687] LDA模型的前世今生 在文本挖掘中,有一项重要的工作就是分析和挖掘出文本中隐含的结构信息,而不依赖任何提前标注的信息.L ...

  3. Javascript 高级程序设计--总结【一】

    文档模式 混杂模式 标准模式 js 数据类型 Undefined Null  看做是一种空对象的引用 Boolean Number String Object typeof 返回类型 "un ...

  4. Python基础知识:类

    初级篇 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 1.面向对象三大特性 ...

  5. 04LaTeX学习系列之---overleafz在线编辑平台的使用

    目录 目录 前言 (一)overleaf的认识 1.由来: 2.优点: 3.界面: (二)编译与查看 1.选择编译器 2.编译 (三)基本的设置与操作 1.基本设置 2.基本操作 目录 本系列是有关L ...

  6. 彻底修改 Windows 系统用户名

    在 Windows 安装的时候会输入一个用户名,电脑店装的一般都会给你设置成Admin之类的.这个时候你想要改成自己的,一般都是直接在 控制面板 > 用户帐户和家庭安全 > 用户帐户 &g ...

  7. 【Beta Scrum】冲刺! 2/5

    1. 今日完成情况 人员 学号 分工 是否完成 完成情况 胡武成 031502610 学习java后端登录验证方式,尝试编写登录api N 刚学会springmvc登录token拦截,准备明天登录注册 ...

  8. ASP.NET WebAPI 双向token实现对接小程序登录逻辑

    最近在学习用asp.net webapi搭建小程序的后台服务,因为基于小程序端和后台二者的通信,不像OAuth(开放授权),存在第三方应用.所以这个token是双向的,一个是对用户的,一个是对接口的. ...

  9. Windows安装pip方法

    1.下载pip 地址:https://pypi.python.org/pypi/pip#downloads 注意选择tar.gz压缩包,目前最新版本为9.0.1,这里选择的版本是:pip-9.0.1. ...

  10. Centos 7 KVM安装win10

    KVM架构: KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 L ...