spring cloud alibaba 学习(三十二)整合SkyWalking

一、简介

    SkyWalking是一个APM(应用程序性能监控)系统,专为微服务、云原生和基于容器的架构而设计,包括了分布式链路追踪,性能指标分析和服务依赖分析等功能。
    Skywalking 支持Java等探针,数据存储支持Elasticsearch等。

https://github.com/apache/skywalking

二、安装服务端

1、下载

下载 apache-skywalking-apm-8.9.1.tar.gz

https://skywalking.apache.org/downloads/

在这里插入图片描述

2、安装

首先需要安装elasticsearch,步骤省略。

(1)上传到服务器解压

tar -zxvf apache-skywalking-apm-8.9.1.tar.gz

(2)配置es

 # cd config
 # vi application.yml

修改存储的selector 为 ${SW_STORAGE:elasticsearch}

修改es的地址为 ${SW_STORAGE_ES_CLUSTER_NODES:192.168.61.128:9200}

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.61.128:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:500}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:""}

(3)启动

进入到 bin 目录 执行 start.sh 脚本

[root@localhost bin]# ./startup.sh
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!

(4)访问

访问 http://192.168.61.128:8080/ 就能进入web端主页

在这里插入图片描述

三、安装agent

1、下载

下载 apache-skywalking-java-agent-8.9.0-src.tgz

https://skywalking.apache.org/downloads/

在这里插入图片描述
2、打包

由于下载是源码包,需要用maven进行打包

首先进行解压,然后在命令行执行mvn clean install
在这里插入图片描述

打包完成后,会生成一个skywalking-agent的目录,里面包含了已经打好的jar包

在这里插入图片描述

四、使用agent

分别创建三个项目,gateway、client、server,通过gateway调用client,client调用server。项目创建过程参考前面的博客,这里就不叙述了。

分别配置启动参数

1、gateway

配置启动参数

-javaagent:E:\tmp\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=gateway
-Dskywalking.collector.backend_service=192.168.61.128:11800

javaagent 是 skywalking-agent.jar 所在的目录

skywalking.agent.service_name 是服务的名称

skywalking.collector.backend_service 是服务端的地址,agent采集的数据要上报到服务端

其他参数参考配置文件 skywalking-agent/config/agent.config

在这里插入图片描述

2、client

(1)配置启动参数

-javaagent:E:\tmp\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=gateway
-Dskywalking.collector.backend_service=192.168.61.128:11800

(2)接口

自定义一个接口,通过 openfeign 访问 server 服务

@RestController
@RequestMapping("/client")
public class ClientController {

    @Autowired
    private ServerApi serverApi;

    @GetMapping("/test/{id}")
    public Map test(@PathVariable String id){
        return serverApi.test(id);
    }
@FeignClient(value = "server",fallback = ServerApiFallBack.class)
@Component
public interface ServerApi {

    @GetMapping("/server/test/{id}")
    Map test(@PathVariable String id);
}

3、server

(1)配置启动参数

-javaagent:E:\tmp\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=gateway
-Dskywalking.collector.backend_service=192.168.61.128:11800

(2)接口

为 client 提供接口服务

@RestController
@RequestMapping("/server")
public class ServerController {

    @GetMapping("/test/{id}")
    public Object test(@PathVariable String id) {
        Map map = new HashMap();
        map.put("server", id);
        return map;
    }
}

4、访问 gateway 地址

http://192.168.100.73:9003/client/client/test/100

5、查看skywalking web页面

(1)注册的服务

在这里插入图片描述

(2)服务的调用关系拓扑图
在这里插入图片描述

(3)服务端点调用追踪

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Cloud Alibaba 是阿里巴巴提供的基于 Spring Cloud 的开源框架,用于构建微服务架构的应用程序。它提供了一套完整的分布式系统解决方案,包括服务注册与发现、配置管理、负载均衡、熔断器、限流器等核心组件,为开发者提供了高可用、高可靠、高性能的微服务开发环境。 要学习 Spring Cloud Alibaba 并应用于项目实战,可以按照以下步骤进行: 1. 学习基础知识:先了解 Spring CloudAlibaba 的相关概念和技术栈,包括 Spring Cloud Netflix、Spring Cloud Gateway、Nacos、Sentinel 等。 2. 搭建环境:根据项目需求,选择合适的开发工具和环境,如 IntelliJ IDEA、Eclipse、Maven、JDK 等,并配置好相关依赖。 3. 创建微服务应用:通过 Spring Initializr 创建一个基础的 Spring Boot 项目,并添加 Spring Cloud Alibaba 的相关依赖。 4. 配置服务注册与发现:使用 Nacos 注册中心,将微服务的信息注册到 Nacos 中,并实现服务之间的调用和发现。 5. 配置负载均衡:通过使用 Spring Cloud LoadBalancer 和 Nacos 客户端实现负载均衡,在多个实例之间分配请求负载。 6. 实现断路器和限流:使用 Sentinel 来实现服务的熔断和限流,保护系统免受高并发的冲击。 7. 使用分布式配置:通过 Nacos 实现配置中心,将应用程序的配置文件统一管理,并自动刷新配置。 8. 实现服务网关:使用 Spring Cloud Gateway 构建统一的入口,对外提供简化的 API,并进行请求过滤、路由转发等功能。 9. 监控和追踪:使用 SkyWalking 对微服务的性能和健康状态进行监控,并进行错误追踪和分析。 10. 测试和部署:编写测试用例,对微服务进行单元测试和集成测试,并使用 Docker、Kubernetes 等容器技术进行部署和管理。 通过以上步骤的学习和实践,逐步掌握 Spring Cloud Alibaba 的核心组件和功能,就可以从入门到项目实战了。但需要注意的是,只有持续学习和实践,并结合实际项目需求,才能不断提升自己在 Spring Cloud Alibaba 上的能力和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_lrs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值