网站首页 > 开源技术 正文
服务案例
假设你有个订单微服务,包含以下组件
- MySQL数据库分表分库(2台)
- 生产者(2台) dubbo-provider
- 消费者 dubbo-consumer
网络拓扑图如下
生产者的关键代码
消费者的关键代码
监控启动
- 使用 javaagent 启动生产者
- -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider -Dskywalking.collector.backend_service=192.168.136.129:11800
- -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider2 -Dskywalking.collector.backend_service=192.168.136.129:11800
- 启动消费者
- -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-consumer -Dskywalking.collector.backend_service=192.168.136.129:11800
- 模拟请求
在浏览器访问http://localhost:9090/order/1184489161562816511,多次调用使负载生效;修改订单id参数,让调用覆盖不同的数据库
- 效果查看
访问skywalking监控地址http://192.168.136.129:8080/查看监控效果
仪表盘
网络拓扑图
错误日志
Trace查询
日志集成
这部分我们先看下调用链的原理:
- 请求到来生成一个全局TraceID,通过TraceID可以串联起整个调用链,一个TraceID代表一次请求。
- 除了TraceID外,还需要SpanID用于记录调用父子关系。每个服务会记录下Parent id和Span id,通过他们可以组织一次完整调用链的父子关系。
- 要查看某次完整的调用则只要根据TraceID查出所有调用记录,然后通过Parent id和Span id组织起整个调用父子关系。
正是由于TraceID如此重要,所以我们希望这个调用链的TraceID能输出在日志文件中,一旦观察到有异常调用,我们在日志分析平台直接搜索TraceID即可将关联的日志全部检索出来,大大提高我们解决问题的效率。
集成过程(log4j2)
引入日志包l
org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2
引入SW工具包
org.apache.skywalking apm-toolkit-log4j-2.x 6.4.0
修改日志显示格式 log4j2.xml
启动应用,观察控制台
刚启动时候获取不到TraceID,所以TID显示为N/A,启动完成后调用请求再次观察控制台,发现所有链路上的日志都打上了TraceID。
很简单的几步就让你的微服务加上了调用链监控,你还不赶紧试试?
猜你喜欢
- 2024-12-26 “用罚款赚回来了!”美国一县买无人机服务监控非法燃放烟花
- 2024-12-26 技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统
- 2024-12-26 在线自动监控设施——服务内容、技术服务指标
- 2024-12-26 海康威视公路视频监控可视化综合解决方案,推荐收藏
- 2024-12-26 linux下资源(网络、cpu、内存、io、文件)监控和分析工具汇总
- 2024-12-26 服务器监控配置-Windows Server安装SNMP
- 2024-12-26 48 张图 | 手把手教你微服务的性能监控、压测和调优
- 2024-12-26 SpringBoot服务监控机制,总算整明白了
- 2024-12-26 网易互娱在秒级监控、服务限流、AIOps落地上的运维升级实践
- 2024-12-26 zabbix通过自定义脚本监控Linux服务、docker nginx容器,图文详细
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)