【Spring Cloud】服务容错中间件Sentinel入门

04-27 1699阅读 0评论

文章目录

  • 什么是 Sentinel
      • Sentinel 具有以下特征:
      • Sentinel分为两个部分:
      • 安装 Sentinel 控制台
        • 下载jar包,解压到文件夹
        • 启动控制台
        • 访问
        • 了解控制台的使用原理
        • 微服务集成 Sentinel
          • 添加依赖
          • 增加配置
          • 测试用例编写
          • 启动程序
          • 实现接口限流
          • 总结

            欢迎来到阿Q社区

            https://bbs.csdn.net/topics/617897123

            什么是 Sentinel

            Sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

            Sentinel 具有以下特征:

            • 丰富的应用场景:Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
            • 完备的实时监控:Sentinel提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。
            • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与SpringCloud、Dubbo、gRPC的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。
            • 完善的SPI扩展点:SentineI 提供简单易用、完善的SPI扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

              Sentinel分为两个部分:

              • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有Java运行时环境,同时对 Dubbo /Spring Cloud 等框架也有较好的支持。
              • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

                安装 Sentinel 控制台

                Sentinel 提供一个轻量级的控制台,它提供机器发现、单机资源实时监控以及规则管理等功能。

                下载jar包,解压到文件夹

                https://github.com/alibaba/Sentinel/releases

                启动控制台

                #直接使用jar命令启动项目(控制台本身是一个Spring Boot项目)
                java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar
                

                【Spring Cloud】服务容错中间件Sentinel入门

                访问

                通过浏览器访问localhost:8080进入控制台

                【Spring Cloud】服务容错中间件Sentinel入门

                默认用户名密码是sentinel/sentinel,输入之后登录成功

                【Spring Cloud】服务容错中间件Sentinel入门

                了解控制台的使用原理

                SentineI 的控制台其实就是一个 SpringBoot 编写的程序。

                我们需要将我们的微服务程序注册到控制台上,即在微服务中指定控制台的地址,并且还要开启一个跟控制台传递数据的端口,控制台也可以通过此端口调用微服务中的监控程序获取微服务的各种信息。

                【Spring Cloud】服务容错中间件Sentinel入门

                微服务集成 Sentinel

                微服务集成 Sentinel 非常简单,只需要加入 Sentinel 的依赖即可

                添加依赖

                在 pom. xml 中加入下面依赖

                   
                	com.alibaba.cloud   
                	spring-cloud-starter-alibaba-sentinel   
                	2.1.0.RELEASE
                
                

                增加配置

                修改 shop-order,在里面加入 sentinel 有关控制台的配置

                spring:
                  cloud:
                    sentinel:
                      transport:
                        port: 9999 #跟控制台交流的端口,随意指定一个未使用的端口即可
                        dashboard: localhost:8080  #指定控制台服务的地址
                

                测试用例编写

                编写一个 Controller 测试使用

                @RestController
                @RequestMapping("/order")
                @Slf4j
                public class OrderController3 {
                    
                    @RequestMapping("/message1")
                    public String message1() {
                        return"message1";
                    }
                    @RequestMapping("/message2")
                    public String message2() {
                        return"message2";
                    }
                    
                }
                

                启动程序

                程序启动之后,访问127.0.0.1:8091/order/message1,发现在 sentinel 管理页面看到确实有监控 shop-order 微服务

                【Spring Cloud】服务容错中间件Sentinel入门

                实现接口限流

                通过控制台为 message1 添加一个流控规则

                【Spring Cloud】服务容错中间件Sentinel入门

                【Spring Cloud】服务容错中间件Sentinel入门

                【Spring Cloud】服务容错中间件Sentinel入门

                通过控制台快速频繁访问,观察效果,发现限流成功。

                【Spring Cloud】服务容错中间件Sentinel入门

                总结

                到这儿,服务容错中间件 Sentinel 我们算是基本入门了。下一篇将为大家带来容错组件 Sentinel 的进阶文章,敬请期待吧!

                后续的文章,我们将继续完善我们的微服务系统,集成更多的Alibaba组件。想要了解更多JAVA后端知识,请点击文末名片与我交流吧。留下您的一键三连,让我们在这个寒冷的东西互相温暖吧!


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1699人围观)

还没有评论,来说两句吧...

目录[+]