本文章目的:如何在微服务系统中使用链路监控
对微服务系统调用链监控就是链路监控
在分布式系统中,完成一个功能 ,需要涉及到许多服务协作,连接这些服务的请求组合起来就是链路,
例如:就好比一台自行车,我想让自行车跑起来,必须使用链条,那么这个链条就是链路。
就是用来记录服务之间的请求过程,就是链路监控
见图,微服务不使用链路监控
1、微服务系统正常运行,时间正常情况下,不需要使用监控中心
2、在微服务调用过程中比较耗时情况
2.1 如何知道是什么地方导致耗时,无法排查是哪一个节点出现了问题
3、在微服务调用过程中,涉及到哪些微服务情况
3.1 无法知道微服务的调用过程。
在这两个问题的情况下,所以我们需要使用知道微服务之间的调用过程和每一个微服务掉调用过程所需要的时间。
根据场景中出现的问题,来引出链路监控
那么如何解决这两种问题呢,所以出现了链路监控
Cat :大众点评开发,基于java的实时应用监控平台,包括实时应用监控,业务是监控
Zipkin :java 开发Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单 :代码嵌入性强,基于中间件实现,
Pinpoint:java开发 Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入
SkyWalking:java 开发 SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。全链路追踪,配置极其简单。没有任何代码入侵。
Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东的Hydra、新浪的Watchman,美团点评的CAT,skywalking等。
根据优点和缺点(也是框架内部的一些配置和对比)进行比较得出结论
1、两方面考虑 结合框架特点,结合业务场景特点
所以我们选择SkyWalking
条件
1、JDK1.8
2、SkyAPM.Agent.AspNetCore
3、Mysql/ES
Skywalking Agent
SkyWalking客户端,用来发送链路数据到Collecter
SkyWalking Collecter
对于链路数据进行分析,处理,然后存储到storage
Skywalking Storage
对于分析的链路结果数据进行存储
SkyWalking UI
展示链路数据,方便监控
见图进行展示
条件
1、JDK1.8
2、Elasticsearch 6.6.0
3、SkyWalking
4、SkyAPM-dotnet
5、api网关
步骤
1、JDK 1.8操作
1.1 jdk1.8下载
已经进行下载
2、Elasticsearch 6.6.0操作
2.1 Elasticsearch 6.6.0下载
下载地址:
2.2 Elasticsearch 6.6.0配置
解压后,在elasticsearch-6.6.0/config目录下,在l内配置
network.host: 0.0.0.0
增加
thread_pool.bulk.queue_size: 1000
2.3 Elasticsearch 6.6.0启动
解压后,在elasticsearch-6.6.0/bin目录下,双击启动
elasticsearch.bat
2.4 Elasticsearch 6.6.0访问
输入访问地址:localhost:9200,显示页面,安装成功
3、 SkyWalking操作
3.1 SkyWalking 下载
下载地址:/
3.2 SkyWalking 配置
解压后,在apache-skywalking-apm-bin/config目录下,在l内配置
elasticsearch:nameSpace: ${SW_NAMESPACE:""}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}user: ${SW_ES_USER:""}password: ${SW_ES_PASSWORD:""}indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}# Those data TTL settings will override the same settings in dDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is dayotherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is daymonthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month# Batch process setting, refer to .5/java-docs-bulk-processor.htmlbulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requestsflushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requestsconcurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requestsresultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
注释配置
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
3.3 SkyWalking-webapp配置
切换到apache-skywalking-apm-bin/webapp目录,在l配置
server:port: 8081
3.4 SkyWalking 启动
解压后,在apache-skywalking-apm-bin/bin目录下,双击启动
startup.bat
3.4 SkyWalking
输入地址进行访问:localhost:8081,响应结果,安装成功
4、将不同语言的APM进行接入操作
.NET Core APM接入参考
本文发布于:2024-01-28 02:12:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063791454049.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |