• APM技术原理


    链接地址:http://www.infoq.com/cn/articles/apm-Pinpoint-practice
    

    1、什么是APM?

    APM,全称:Application Performance Management ,目前市面的系统基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)来做的,翻译传送门《google的Dapper 中文翻译》

    思考下:不遵守该理论的是伪APM,耍流氓吗?

    APM的核心思想是什么? 在应用服务各节点相互调用的时候,从中记录并传递一个应用级别的标记,这个标记可以用来关联各个服务节点之间的关系。比如两个应用服务节点之间使用 HTTP 作为传输协议的话,那么这些标记就会被加入到 HTTP 头中。可见如何传递这些标记是与应用服务节点之间使用的通讯协议有关的,常用的协议就相对容易加入这些内容,一些按需定制的可能就相对困难些,这一点也直接决定了实现分布式追踪系统的难度。

    2、为什么要用APM?

    有业务痛点,才要寻求解决方案,个人认为,APM需要优先解决测试环境下两个场景问题,基于测试先行的原则考虑:

    img

    优先关注宏观数据,并不是说测试人员无须关注微观层面的问题,在测试角度来看,先解决性能测试环境的数据采样、收集问题,再去评估生产环境,而线上的链路监控需要研发跟运维去配合,【研发角度场景】相对于测试人员来说是弱关注了。

    3、市面上有哪些APM工具?

    • Pinpoint
      Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java.
      https://github.com/naver/pinpoint
    • SkyWalking
      A distributed tracing system, and APM ( Application Performance Monitoring ) .
      http://skywalking.org
    • Zipkin
      Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data. Zipkin’s design is based on the Google Dapper paper.
      http://zipkin.io/
    • CAT (大众点评)
      CAT基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。
      https://github.com/dianping/cat
  • 相关阅读:
    Oracle修改表Table所属表空间及Clob、Blob字段的处理
    MyBatis返回多表连接结果
    MyBatis查询结果resultType返回值类型详细介绍
    SpringBoot之分页PageHelper
    Postman简单用法以及转cURL等命令的正确姿势
    postman 巧用cURL
    Spring Boot设置跨域访问
    springboot设置cors跨域请求的两种方式
    @Configuration使用
    @GetMapping和@PostMapping接收参数的格式
  • 原文地址:https://www.cnblogs.com/ipyanthony/p/9909857.html
Copyright © 2020-2023  润新知