+
95
-

回答

在接口性能优化和系统稳定性方面,我们通常使用APM工具。

 APM(Application Performance Management)是一种应用程序性能管理工具,可以对企业的应用系统进行实时监控,并提供性能分析、故障定位等功能,帮助企业解决应用程序性能问题。

APM工具可以监控接口的每个逻辑的耗时情况,该接口调用了哪些服务以及调用频次,以及系统的运行状况,包括请求量、失败量、成功量,以及失败请求对应的接口等信息。这些信息可以帮助我们发现并优化性能瓶颈、定位问题,进而提高系统稳定性,市面上的APM工具:

CAT(开源)

由国内美团点评开源的,基于 Java 语言开发,目前提供 Java、C/C++、Node.js、Python、Go 等语言的客户端,监控数据会全量统计。国内很多公司在用,例如美团点评、携程、拼多多等。CAT 需要开发人员手动在应用程序中埋点,对代码侵入性比较强。

Zipkin(开源)

由 Twitter 公司开发并开源,Java 语言实现。侵入性相对于 CAT 要低一点,需要对web.xml 等相关配置文件进行修改,但依然对系统有一定的侵入性。Zipkin 可以轻松与 Spring Cloud 进行集成,也是 Spring Cloud 推荐的 APM 系统。

Pinpoint(开源)

韩国团队开源的 APM 产品,运用了字节码增强技术,只需要在启动时添加启动参数即可实现 APM 功能,对代码无侵入。目前支持 Java 和 PHP 语言,底层采用 HBase 来存储数据,探针收集的数据粒度非常细,但性能损耗较大,因其出现的时间较长,完成度也很高,文档也较为丰富,应用的公司较多。

SkyWalking(开源)

国人开源的产品,2019 年 4 月 17 日 SkyWalking 从 Apache 基金会的孵化器毕业成为顶级项目。目前 SkyWalking 支持 Java、.Net、Node.js 等探针,数据存储支持MySQL、ElasticSearch等。

还有很多不开源的 APM 系统,例如,淘宝鹰眼、Google Dapper 等等。

网友回复

我知道答案,我要回答