微服务-基于Skywaling链路追踪(6)

一.为什么用Skywalking?
随着微服务业务复杂度的增加,接口间通信和校验会变的复杂,为了便于找到和调试,引入链路追踪监控和分析各接口明细的运行情况。
 
常用的链路追踪组件有以下3种,进行了对比:
 
 
选用Skywalking的原因是其基于Java Agent探针技术,通过字节码注入的方式实现调用拦截和数据收集,可以做到真正的代码无侵入,只需要在启动服务器的时候添加一些参数,就可以完成探针的部署是非侵入的埋点方式,且存储支持ES,符合项目实际的场景。
 
Skywalking架构图如下:
 
二.SkyWalking在Net Core的安装和使用
(1)前期准备:JDK安装
JDK安装完成后,添加 环境变量中的系统变量 JAVA_HOME ,JRE_HOME
 
cmd查看版本 java -version
(2)Skywalking下载和启动
(2-1)Windows版本
下载Skywalking,下载地址如下:https://archive.apache.org/dist/skywalking/
 
找到安装包 apache-skywalking-apm-8.4.0,双击"startupbat",如下图所示
 
 
(2-2)Centos版本
1.准备
命令:
docker pull
apache/skywalking-oap-server:6.6.0-es7
apache/skywalking-ui:6.6.0
命令:
 
2.安装
安装oap
docker run --name oap --restart always -d \
-e TZ=Asia/Shanghai \
-p 12800:12800 \
-p 11800:11800 \
--link es7:es7 \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 \
apache/skywalking-oap-server:6.6.0-es7
安装UI
docker run -d --name skywalking-ui \
-e TZ=Asia/Shanghai \
-p 8080:8080 \
--link oap:oap \
-e SW_OAP_ADDRESS=oap:12800 \
apache/skywalking-ui:6.6.0
完成后访问8080端口:
(3)与.Net Core集成
(3-1)dotnet tool install -g SkyAPM.DotNet.CLI
(3-2)修改 launchSettings.json
  配置文件中增加属性:"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"

 (3-3)安装Nuget包 SkyAPM.Agent.AspNetCore

(3-4)在应用程序根目录下使用以下命令生成skyapm.json的配置文件
dotnet skyapm config [service name] [server]:11800
 其中:
[service name]替换为服务的名称
[server]替换为Skywalking安装的服务器ip
 
dotnet skyapm config SkyApm_API:11800     11800是SkyApm的默认端口
 
在项目文件中,多了文件 skyapm.json
(3-5)启动进程
打开Skywalking的UI界面,点击“追踪”,看到接口的持续时间和跨度信息
点击“拓扑图”, 可看到接口间的调用关系
 

 

 以上仅用于学习和总结!

附:
项目源码:链接:https://pan.baidu.com/s/1uCHfXnGPXNH6OA8vLbdXBQ  提取码:v6p6

apache-skywalking-apm-8.4.0:链接:https://pan.baidu.com/s/100JrSfD5-6KfeQ2CDILT3w       提取码:fmb0

 
 
 
参考地址:
posted @ 2021-04-10 13:25  y_w_k  阅读(338)  评论(0编辑  收藏  举报