当前位置: 首页 > ai >正文

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

在这里插入图片描述

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

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

基于nacos搭建分布式项目 分布式系统日志

  • es与kibana
    • 版本建议
    • 配置信息
      • es
      • kibana
    • 启动验证
  • skywalking 配置更改es存储
    • 重启前需要先关闭之前启动的skywalking
    • 启动命令
    • 校验是否与es建立连接
      • 第一步(检查skywalking与es连接)
      • 第二步(查看有没有自动创建es索引)
      • 第三步(启动所有项目)
        • 验证
      • 第四步(查看日志有没有存储到es)
      • 第五步(查看skywalking页面是否正常)
  • 结尾

es与kibana

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

版本建议

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

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

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

# 检查系统架构
uname -mwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.23.tar.gzwget 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/logsrm -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初体验

希望本文可以帮到你。

http://www.xdnf.cn/news/14349.html

相关文章:

  • Python爬虫实战:研究Mr. Queue相关技术
  • 【Java SE】类和对象(3)
  • Kafka源码P2-生产者缓冲区
  • 基于大模型预测缺铁性贫血的综合技术方案大纲
  • 记录一次 Oracle 表空间不足问题的解决过程
  • Linux进程间通信(上)
  • Proteus8.17-LCD12864液晶屏幕仿真模型
  • 华为OD机试-考勤信息-双指针(JAVA 2025B卷)
  • AI是什么?大模型、语料、训练、推理、机器学习、神经网络等专业名词如何关联
  • 基于docker的nocobase本地部署流程
  • CPU的异常处理
  • PC16550 UART接收中断处理完整示例代码
  • 134-135Elements-UI组件库
  • 03- 六自由度串联机械臂(ABB)动力学分析
  • SoftMax 函数
  • Unity基础-范围检测
  • Redis全面深入学习目录
  • 求数组中最长单调不降连续子数组的长度
  • stm32 f103c8t6仿真 串口收发测试
  • 用AI配合MCP快速生成n8n工作流
  • 【Linux服务器】-安装zabbix-负载环境(故障自动切换场景)
  • HarmonyOS Grid 网格拖拽完全指南
  • 设备健康管理系统搭建全技术解析:从架构设计到智能运维实践
  • Linux 忘记root密码如何解决-linux025
  • 理解 package.json 中的版本控制:“nuxt“: “3.16.0“ vs “nuxt“: “^3.16.0“ 的深层差异
  • DependencyMatcher + ML Reranking 策略设计实践
  • Qt3d中的材质--PBR材质
  • vue中computed和watch区别
  • jxWebUI--简单易用的webUI库
  • 大模型微调(Fine-tuning)概览