首页 > 编程语言 > 详细

Spring Cloud Alibaba Sentinel 初始

时间:2021-02-28 15:13:02      阅读:29      评论:0      收藏:0      [点我收藏+]

(一)Sentinel 简介

 (1)随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel 以“流量”为突破口,在流量控制、熔断降级、负载保护等多个领域进行工作,保障服务可靠性。通俗:用来在微服务系统中保护微服务的作用,如何应对 服务雪崩 服务熔断 服务降级 就是用来替换 Hystrix;

 (2)特性

  - 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰、集群流量控制、实时熔断下游不可用应用等;

  - 完备的实时监控:Sentinel 同时提供实时的监控功能,您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群汇总运行情况;

  - 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架 / 库的整合模块,例如与 Spring Cloud、Dubbo、RPC 的整合,您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

  技术分享图片

(二)Sentinel 下载安装

  (1)下载地址:Sentinel版本地址

 

  (2)我选择 sentinel-dashboard-1.8.1.jar 

        技术分享图片

  (3)移动到指定目录,通过运行 Jar 包的命令执行 sentinel-dashboard-1.8.1.jar

    手动指定端口后台运行:nohup java -Dserver.port=8888 -jar sentinel-dashboard-1.8.1.jar > catalina.out 2>&1 &

    查看日志命令:tail -f catalina.out 

  (4)浏览器地址栏:http://localhost:8888   输入默认的用户名和密码 sentinel 登记成功

    技术分享图片

 

(三)Sentinel 实时监控服务 

  (1)创建项目引入依赖

<!--引入nacos client 依赖,服务注册与发现-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!--引入sentinel 依赖 服务监控-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

  (2)配置文件中写配置

server.port=8789
# 指定服务名称【默认和应用名称同名】
spring.application.name=nacosclient
# 1)先声明 nacos 的注册中心地址;2)服务发现【客户端】进行注册,引用的就是注册中心的地址;
spring.cloud.nacos.server-addr=localhost:8848
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr}

# 暴露所有web端点【 nacos client 需要和其他微服务做通信,需要健康检查】
management.endpoints.web.exposure.exclude=‘*‘

# sentinel dashboard 8888 外部访问仪表盘界面的端口 和 sentinel logs 8719 内部服务的通信端口
# 此时 nacos-client 服务调用时产生的日志信息就会传递给 sentinel 进行展示,进而对服务进行流量控制、熔断降级、负载保护
spring.cloud.sentinel.enabled=true
spring.cloud.sentinel.transport.dashboard=localhost:8888
spring.cloud.sentinel.transport.port=8719

  注意:项目启动后,该微服务会自动交给 Sentinel 流量卫兵进行管理,但是访问 Dashboard 界面查看服务监控,发现界面什么都没有? 

     默认情况下 Sentinel 为延迟加载,不会在启动之后立即创建服务监控,需要对服务进行调用时才会初始化;

               也可以在微服务启动时,手动加入配置:spring.cloud.sentinel.eager=true  此时 Sentinel 立即加载该微服务,而非延迟加载。

  (3)编写简单测试 demo

@RestController
@Slf4j
public class SentinelController {
    @GetMapping("/sentinel/test")
    public String test(){
        log.info("sentinel test");
        return "sentinel test ";
    }

    @GetMapping("/sentinel/test1")
    public String test1(){
        log.info("sentinel test1");
        return "sentinel test1 ";
    }
}

  (4)调用该微服务时,会出现 QPS 的调用量

       技术分享图片

 

 (四)

 

Spring Cloud Alibaba Sentinel 初始

原文:https://www.cnblogs.com/blogtech/p/14458764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!