【springcloud】快速搭建一套分布式服务springcloudalibaba(五)

在这里插入图片描述

第五篇 基于nacos搭建分布式项目 分布式系统日志(skywalking+es)
项目所需 maven + nacos + java8 + idea + git + mysql + redis + skywalking + es
本文主要从客户下单时扣减库存的操作,将链路日志模拟出来,网关系统/用户系统/商品系统/订单系统

上文只介绍了skywalking的使用,使用的默认配置与h2存储,本文补充为es查询。

es与kibana

安装与配置本文就不写了,往上都有,需要注意的是版本使用问题。
本文使用的6.8.23

版本建议

  • Elasticsearch 5.x 和 6.x 版本与 Java 8 兼容性最好

  • Elasticsearch 7.x 需要 Java 11+,但某些早期 7.x 版本仍支持 Java 8

  • kibana与es版本保持一致即可

# 检查系统架构
uname -m

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.23.tar.gz

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.8.23-linux-x86_64.tar.gz

配置信息

es

需要修改的信息

/opt/elasticsearch/config/elasticsearch.yml
network.host: 0.0.0.0

kibana

需要修改的信息

/opt/kibana/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"

启动验证

http://192.168.99.104:9200
http://192.168.99.104:5601

在这里插入图片描述
在这里插入图片描述

skywalking 配置更改es存储

重启前需要先关闭之前启动的skywalking

# 第一步先删除上一次的日志信息 方便排查启动问题
cd /youfileName/apache-skywalking-apm-bin/logs

rm -rf skywalking-oap-server.log

# 修改配置文件
vim /youfileName/apache-skywalking-apm-bin/config/application.yml
# 默认为h2 修改为elasticsearch 默认配置中的端口都是配置好的,如果你修改了es的用户名和密码 记得修改!
selector: ${SW_STORAGE:elasticsearch}

启动命令

因为上次已经启动部署过了,没有关闭。修改配置文件需要先关闭重启。如果直接重启配置文件不会生效。

# 先查看有没有 skywalking 的程序在跑
ps aux | grep -i 'skywalking'
# 关闭所有关于skywalking的应用
sudo pkill -f 'skywalking'
# 重新启动
sh ./oapService.sh 
SkyWalking OAP started successfully!

原神,启动!!!

校验是否与es建立连接

第一步(检查skywalking与es连接)

cd /youfielName/apache-skywalking-apm-bin/logs
cat skywalking-oap-server.log
# 看看日志中有没有获取到es版本信息
2025-06-15 15:14:40,077 - org.apache.skywalking.library.elasticsearch.ElasticSearch - 146 [armeria-eventloop-epoll-4-2] INFO  [] - ElasticSearch version is: ElasticSearch 6.8

第二步(查看有没有自动创建es索引)

curl http://192.168.99.104:9200/_cat/indices?v
# 默认情况下 skywalking会在es中创建sw_log-20250615 看查询出来的索引信息中有没有 

http://192.168.99.104:9200/sw_log-*/_mapping?pretty
# 查看skywalking索引有没有创建成功

第三步(启动所有项目)

这里我演示的是客户下单时扣减库存的操作,启动之后请求登陆然后下单。
在这里插入图片描述

# 这个是order服务请求
http://192.168.99.104:8070/order/goods/get?productId=1

TID: [SegmentId].[SpanId].[Timestamp]
TID:af7d7480fd8a4f4eb1273b0949ce11b6.58.17499719070320001 这个就是skywalking默认注入的tid,同一链路会通过请求头传递

  • SegmentId:唯一标识一个服务实例的调用链段

  • SpanId:标识当前调用环节在调用链中的位置

  • Timestamp:纳秒级时间戳

验证

order-service 在8070
在这里插入图片描述
goods-service在8090
在这里插入图片描述

第四步(查看日志有没有存储到es)

GET /sw_log-20250615/_search?scroll=1m&pretty
{
  "size": 100,
  "query": {
    "match_all": {}
  }
}

在这里插入图片描述

第五步(查看skywalking页面是否正常)

通过同一链路id可以查询到当前链路下的所有日志
在这里插入图片描述

小结
之后楼主会解锁更多适合初学者关于分布式系统的文章,更新自己的技术库,如果有不明白的欢迎评论留言,这里谢谢大家阅读。

结尾

第一篇快速部署一套分布式服务

第二篇 基于nacos搭建分布式项目 网关

第三篇 搭建分布式项目 分布式事务(分布式锁+事务)

第四篇 搭建分布式项目日志 skywalking初体验

希望本文可以帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值