微服务保护和分布式事务(2)

米饭8个月前行业资讯438

1.2 Sentinel:

微服务保护的技术有很多,但在目前国内使用较多的还是 Sentinel,所以接下来我们学习 Sentinel 的使用。


1.2.1 介绍和安装:

Sentinel 是阿里巴巴开源的一款服务保护框架,目前已经加入 SpringCloudAlibaba 中。官方网站:


https://sentinelguard.io/zh-cn/


Sentinel 的使用可以分为两个部分:


核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。

控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。

下载和运行访问:


去官网上进行下载,需要注意的是,下载完成后需要将jar包放在任意非中文、不包含特殊字符的目录下,重命名为sentinel-dashboard.jar


启动 jar 包所在文件目录的控制台,输入以下命令:

java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
  1. 访问 http://localhost:8090 页面,就可以看到 sentinel 的控制台了:

  2. image-20241121165746376

  3. 需要输入账号和密码,默认都是:sentinel

  4. 登录后,即可看到控制台,默认会监控 sentinel-dashboard 服务本身:

  5. image-20241121165827883

  6. 1.2.2 微服务整合:

  7. 需要在哪个微服务整合 Sentinel 就在对应的微服务,按照下面这些步骤进行执行。

  8. 引入 Sentinel 依赖:

  9. <!--sentinel-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId> 
        <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    </dependency>
  10. 配置控制台:

  11. 修改 application.yaml 文件,添加下面内容:

  12. 访问对应微服务的任意接口:

  13. 重启微服务,然后访问接口,sentinel 的客户端就会将服务访问的信息提交到 sentinel-dashboard 控制台。并展示出统计信息,如下图:

  14. image-20241121170545442

  15. 点击簇点链路菜单,会看到下面的页面:

  16. image-20241121170608213

  17. 所谓簇点链路,就是单机调用链路,是一次请求进入服务后经过的每一个被 Sentinel 监控的资源。默认情况下,Sentinel 会监控SpringMVC 的每一个 Endpoint(接口)。


  18. 因此,我们看到/carts这个接口路径就是其中一个簇点,我们可以对其进行限流、熔断、隔离等保护措施。


  19. 我们可以选择打开 Sentinel 的请求方式前缀,把请求方式 + 请求路径作为簇点资源名:


  20. 在application.yml中添加下面的配置:

  21. spring:
      cloud:
        sentinel:
          transport:
            dashboard: localhost:8090
          http-method-specify: true # 开启请求方式前缀
    然后,重启服务,通过页面访问购物车的相关接口,可以看到 sentinel 控制台的簇点链路发生了变化:
  22. image-20241121171104467

  23. 本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

    云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

    《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

    想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ

相关文章

【Docker】0.空间资源隔离

【Docker】0.空间资源隔离

NameSpacedd + option : 可以从标准输入或文件中读取数据,根据指定格式来转换数据,再输出到文件、设备或标准输出 --help 显...

从传统运维到SRE的转型路线

从传统运维到SRE的转型路线

从传统运维向SRE(Site Reliability Engineering)转型需要技术技能、思维方式和工作模式的全面转变。以下是详细的转型路线图:一、理解SRE的核心理念SRE的定义SRE是Goo...

Linux CentOS7虚拟机配置静态IP并允许上网的配置方法

Linux CentOS7虚拟机配置静态IP并允许上网的配置方法

前言当我们成功的将CentOS镜像安装到了我们的虚拟机上后,可是这个时候,虚拟机还没有配置IP信息,为了后面开发方便,我们需要设置一个静态IP。一、开启本地电脑VMnet8本地电脑,右键点击网络-&g...

【Docker 】深入探索 Docker :高阶操作与配置设置(上)

【Docker 】深入探索 Docker :高阶操作与配置设置(上)

Docker 是现代应用开发和部署的重要工具,能够帮助开发者轻松创建、管理和部署容器化应用。除了基本的命令外,掌握高阶操作和配置设置将大大提高您的工作效率和应用性能。本文将介绍一些 Docker 的高...

Linux 用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法

Linux 用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法

一、问题原因如下:出现这个问题是因为yum在安装包的过程中,虽然已经联网,但是没法解析远程包管理库对应的域名,所以我们只需要在网络配置中添加上DNS对应的ip地址即可。二、处理方案:1. 编辑修改网卡...

Spring AOP 实战指南:从入门到精通(3)

Spring AOP 实战指南:从入门到精通(3)

3.3 @PointCut:Spring 提供了 @PointCut 注解,把公共的切点表达式提取出来,需要用到时引用该切入点表达式即可,便于后续代码的维护。@Aspect @Slf4j @Com...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。