分布式链路追踪SkyWalking如何配置管理

16次阅读
没有评论

这篇文章主要介绍分布式链路追踪 SkyWalking 如何配置管理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

SkyWalking 是一个开源 APM 系统,包括针对 Cloud Native 体系结构中的分布式系统的监视,跟踪,诊断功能。核心功能如下:

– 服务、服务实例、端点指标分析

– 根本原因分析,在运行时分析代码

– 服务拓扑图分析

– 服务,服务实例和端点依赖性分析

– 检测到慢速服务和端点

– 性能优化

– 分布式跟踪和上下文传播

– 数据库访问指标。检测慢速数据库访问语句(包括 SQL 语句)

– 报警

SkyWalking 目前是 Apache 顶级项目,作为这么优秀的开源项目,它的架构设计理念肯定会有很多值得我们借鉴。

### 分布式配置生态方法论

分布式配置是一个老生常谈的分布式话题,但凡具备分布式能力的系统都要考虑分布式配置,主流比较成熟的分布式配置系统有哪些?如果要讲生态方法论,肯定是要考虑这些问题的。

#### Apollo

做过分布式开发的人应该都知道携程的这一套非常流行的分布式配置框架,非常成熟,并且有很多公司都是直接使用开源的 Apollo,可以说充分信任这套框架。

Apollo 能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于 Spring Boot 和 Spring Cloud 开发,打包后可以直接运行,不需要额外安装 Tomcat 等应用容器。Java 客户端不依赖任何框架,能够运行于所有 Java 运行时环境,同时对 Spring/Spring Boot 环境也有较好的支持。

应用从集中式的单体架构到微服务化架构,服务越来越多,原有的基于单体的配置越来越难管理,不能满足快速发布和交付的业务场景。对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……

在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。

这样像 Apollo 这样的分不死配置框架产生了,其实主要是为业务提效,因为依托它可以构建应用配置管理的生态。

关于 Apollo 的详细介绍可以参考官方的文档,这里只列举它的几个核心的概念:

 – application(应用):这个就是类比应用中的 `spring.application.name=api-alarm`,这个从应用层次隔离配置。

 – environment(环境):配置对应的环境,Apollo 客户端在运行时需要知道当前应用处于哪个环境,从而可以去获取应用的配置

 – cluster(集群):一个应用下不同实例的分组,比如典型的可以按照数据中心分,把杭州机房的应用实例分为一个集群,把苏州机房的应用实例分为另一个集群。

 – namespace(命名空间):一个应用下不同配置的分组,可以简单地把 namespace 类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,RPC 配置文件,应用自身的配置文件等。比如还可以根据命名空间来做一个集群内部的租户隔离等。

#### Nacos

Nacos 是开箱即使用的服务治理和配置平台,为动态服务发现、配置和服务管理而设计。它帮助您轻松构建云本地应用程序和微服务平台。服务是 Nacos 的服务治理维度,这点不同于 Dubbo。Nacos 支持几乎所有类型的服务,例如 Dubbo/gRPC 服务、Spring Cloud RESTFul 服务或 Kubernetes 服务。

Nacos 提供如下四个主要功能。

 – 服务发现和服务运行状况检查:Nacos 简化了服务的注册和通过 DNS 或 HTTP 接口发现其他服务。Nacos 还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。

 – 动态配置管理:动态配置服务允许您以集中和动态的方式跨所有环境管理所有服务的配置。Nacos 消除了在更新配置时重新部署应用程序和服务的需要,这使得配置更改更加高效和敏捷。

 – 动态域名服务:Nacos 支持加权路由,使您更容易在数据中心的生产环境中实现中间层负载平衡、灵活的路由策略、流控制和简单的 DNS 解析服务。它帮助您轻松实现基于 DNS 的服务发现,并防止应用程序与特定于供应商的服务发现 API 耦合。

 – 服务和元数据管理:Nacos 提供了一个易于使用的服务仪表板,可以帮助您管理服务元数据、配置、Kubernetes DNS、服务运行状况和指标统计数据。

这里作者只是列举了两个当下比较流行的分布式配置框架,当然还有其他的,比如 Disconf 和 Spring Cloud Config 等,但是基本使用频率没有 Apollo 和 Nacos 高。

因为笔者的公司目前是全面使用 Nacos 来完成微服务的服务治理和配置管理,所以作者是优先推荐是用 Nacos,主要四基于如下考虑:

 – 开箱即用

 – 功能简单高效,上手容易

 – 全面支持 K8s

 – 全面支持云原生

 – 全面支持 Spring Cloud Alibaba

 – 社区活跃度非常高

 – 汇集了阿里内部大流量业务场景验证的服务治理和软负载的功能

 – 一个服务就可以完成服务治理和配置管理,节约机器资源。

以上是“分布式链路追踪 SkyWalking 如何配置管理”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!