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. Python:GUI之tkinter学习笔记1控件的介绍及使用

    相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Mes ...

  2. JavaScript大杂烩6 - 理解JavaScript中的this

    在JavaScript开发中,this是很常用的一个关键字,但同时也是一个很容易引入bug的一个关键字,在这里我们就专门总结一下页面中可能出现的this关键字(包括几种在其他页面文件中出现的this) ...

  3. 操作过程-CentOS7下添加新硬盘扩充已经存在的逻辑卷分区的存储空间

    Linux添加硬盘扩充已有分区存储空间方式 总体步骤 磁盘初始化分区 创建物理卷 扩展卷组 扩展逻辑卷 通知文件系统生效 ​ 磁盘初始化分区 [root@oracledb ~]# fdisk -l 磁 ...

  4. 05-sudo权限配置

    阅读目录 基础环境准备 服务端配置 客户端配置 客户端验证 附:sudo常见属性介绍 常见错误分析 1. 基础环境准备 本文接文章openldap服务端安装配置 2. 服务端配置 导入sudo sch ...

  5. 03-14_WLST配置现有的Domain

    本文重点: WLST在线模式配置现有的domains. WLST离线模式配置现有的domains.         1.WLST在线模式配置现有的domains 由于和一个活动的domain进行交互, ...

  6. oracle中给某个用户某张表的权限设置

    今天碰到需要给数据库上某一个用户,开通其中2张表的查询权限,方法如下: grant select on bas_checkcycle to jdc;这个是整个语句. 语句分析: grant selec ...

  7. Linux 查看对外开放端口

    备忘命令: netstat -anpt | grep 514 # 查看 rsyslog tcp 端口是否开放 保持更新,转载请注明出处.

  8. 转 让Python在Android系统上飞一会儿

    让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260

  9. 【PAT】B1043 输出PATest(20 分)

    /* */ #include<stdio.h> #include<algorithm> #include<string.h> #include<ctype.h ...

  10. 【hexo】01安装

    什么是 Hexo? Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 安装前提 安装 Hexo 相当简 ...