最近一直在研究微服务,完全避免不了的是各种中间件的使用,打算把过程简要记录下来,过程很简单,也不会有原理和源代码级别的讲解,只是做下简单的知识备份。

今天开始研究下链路追踪Skywalking,还记得之前在《老张的另一个开源项目——Ancba招募令》的项目中,也用到了链路追踪的组件——Zipkin,不过还是感觉比较简单了些,主要是日志级别的,如果比较复杂的就不好办了,所以打算研究下Skywalking,也集成到项目中。

(Zipkin在Ancba项目中的示例)

本次示例先从本地开始,都是基于Docker来操作的,所以必须安装DockerDesktop环境,相关的安装和K8s服务,可以看我这篇文章《本地搭建K8s环境,并配置Ingress代理

安装 ElasticSearch

执行安装命令:

docker run --name elasticsearch \
-p 9200:9200 -p 9300:9300  \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-d elasticsearch:6.8.19

有三点需要注意:

  • 这里为了演示,设置为单节点了。

  • 测试环境,设置初始内存和最大内存,防止启动ES失败。

  • 采用的是es6版本(不是前端的那个es),最新的是es7,不过下边安装skywalking的es7的时候启动失败,所以采用了es6版本。

  • 安装es是为了配合Skywalking,也不是必须的,Skywalking也有内存模式。

访问http://localhost:9200,效果如下:

安装 Kibana

既然安装好了ElasticSearch,就需要一个看板,可以使用Chrome的一个插件——ElasticSearch Head,界面是真的不太好看,不过也能使用,这里就推荐使用Kibana。

执行安装命令:

docker run -d --name kibana -p 5601:5601 \
-v D:/Code/ark/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:6.8.0

这里挂载了一个yml配置文件,是为了配置上文我们设置好的ElasticSearch信息。

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.1.7:9200" ]
elasticsearch.username: "name"
elasticsearch.password: "password"
xpack.monitoring.ui.container.elasticsearch.enabled: true

当然也可以不用指定yml,指定下具体的host就行了,本地ip地址:

#配置ip地址
#192.168.1.7 elasticsearch

因为Kibana访问的就是elasticsearch的host:

安装完的效果是这样:

安装 Skywalking

直接执行容器命令:

docker run --name skywalking-oap --restart always \
-p 11800:11800 -p 12800:12800 -d \
--link elasticsearch:elasticsearch \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
apache/skywalking-oap-server:8.3.0-es6

还是要注意几点:

  • 这里是配置了es存储的模式,也可以直接内存模式,去掉345那三行就行。

  • oap的版本要和es的版本统一,用es6。

这里如果直接访问11800/12800可能会没效果或者报错,忽略它,直接按照UI来看看效果。

安装 Skywalking-UI

执行安装命令:

docker run --name skywalking-ui --restart always \
-p 8080:8080 \
--link skywalking-oap:skywalking-oap \
-e SW_OAP_ADDRESS=skywalking-oap:12800 \
-d apache/skywalking-ui:8.3.0

同样要注意几点:

  • 需要配置上skywalking的容器名,就是第三行。

  • ui的版本也尽量和oap的版本统一。

最后的效果如图:

这里目前还没有任何数据,下篇我们将说说,如何进行真实的服务中链路追踪操作。

微服务组件记事本:本地搭建Skywalking相关推荐

  1. 微服务组件记事本:Skywalking的ES索引 · 收藏篇

    (2021年倒计时33天) 书接上文,在上回书中,我们说到了<微服务组件记事本:Skywalking执行效果 · 多图篇>,文章比较详细的展示了Skywalking中的各种数据和图表展示, ...

  2. 微服务商城mall-swarm本地搭建

    mall-swarm 微服务商城系统 本地搭建步骤 目录 一.环境搭建: 1.首先从git中下载代码 2.安装检查自己的jdk版本(我之前已经安装好了)​​3.安装Mysql---推荐使用docker ...

  3. 微服务组件记事本:Skywalking执行效果 · 多图篇

    立冬时节知多少 今天立冬,周末两天在家继续研究了下Skywalking,感觉这个组件还是很不错的,无论是设计思想还是架构设计,都能从中受到启发和帮助,建议感兴趣的小伙伴可以看看,当然,如果不感兴趣还是 ...

  4. 微服务入门篇(二),万字长文带你实操作SpringCloudAlibaba微服务组件

    目录 SpringCloudAlibaba介绍 简介 为什么要学SpringCloudAlibaba 从Spring Cloud netflix 到 Spring Cloud Alibaba 功能组件 ...

  5. 2:Alibaba微服务组件Nacos注册中心

    Spring Cloud Alibaba系列目录 提示:这里是第二章:Alibaba微服务组件Nacos注册中心 微服务和Spring Cloud Alibaba介绍 Alibaba微服务组件Naco ...

  6. 8.10Dubbo框架里的微服务组件

    title date comments categories tags permalink Dubbo框架里的微服务组件 2020/4/28 true 微服务 微服务 8.10 今天以开源微服务框架 ...

  7. Golang的微服务组件之限流器与熔断器

    Golang的微服务组件之限流器与熔断器_迈克 Let's Go的博客-CSDN博客https://blog.csdn.net/Edu_enth/article/details/103800551hy ...

  8. Alibaba微服务组件Sentinel

    Alibaba微服务组件Sentinel 1.分布式系统遇到的问题 服务的可用性问题 ​ 提供系统可用性的关键是在相关组件失效情况下,系统能多快恢复并继续正确提供服务.当服务器挂掉的时候首先想到什么原 ...

  9. MongoDB的RestAPI微服务组件--Mongo-Rest介绍

    MongoDB的RestAPI微服务组件--Mongo-Rest介绍 开源项目:https://gitee.com/yunwisdoms/mongodb-rest 安装 使用npm安装: npm in ...

最新文章

  1. 【转】Android菜单详解——理解android中的Menu--不错
  2. 电影院为何有散落的青瓜?
  3. 一个页面从输入URL到加载显示完成,发生了什么?
  4. js中自己实现bind函数的方式
  5. C++技术沙龙主要内容
  6. Mybatis-学习笔记(2)Mybatis配置文件
  7. linux readelf,Linux readelf命令使用
  8. Android开发的经典入门教材和学习路线
  9. 微机原理课程设计-接口芯片编程记录
  10. vue 高德获取当前经纬度
  11. linux dhcpv6有状态配置,翻译:IPv6地址自动配置:有状态和无状态的区别
  12. 在移动硬盘上安装ubuntu18.04过程记录
  13. 2022.11.14每日刷题打卡
  14. cesium使用primitives加载模型数据,点击事件
  15. java poi打印excel_POI打印Excel报表
  16. Controller层各注解总结
  17. ES初探之——shard和replica
  18. fabric-java-sdk1.3.0 测试End2endIT
  19. 如何压缩打包图片文件?照片如何打包压缩?
  20. 欧布奥特曼计算机音乐,【调教用】True Fighter(欧布奥特曼原生之初主题曲)

热门文章

  1. struts2批量删除
  2. NetBeans 6.5 正式发布
  3. Boosting(提升方法)之GBDT
  4. Git Bash的一些命令和配置
  5. JQuery 判断滚动条是否到底部
  6. perl学习笔记——目录操作
  7. 4月12日 webform基本控件
  8. Binary Search二分法搜索C++程序
  9. js滚动条滚动到指定元素
  10. Autofac之自动装配