当前位置:   article > 正文

5.SpringCloud:Sentinel服务流控与服务降级_spring.cloud.sentinel.datasource

spring.cloud.sentinel.datasource

目录

一、导览

二、Sentinel 基本概念

资源

规则

三、Sentinel控制台

四、Sentinel客户端(应用程序)

五、定义流控规则

六、定义资源

七、热点规则

八、API访问

九、规则持久化(规则中心)

十、在生产环境中使用Sentinel


一、导览

        Sentinel与Hystrix一样,都是Spring Cloud Circuit Breaker的具体实现(其实这句表述不严谨,因为Sentinel可以不依赖于Spring Cloud)。

Sentinel支持服务流控、熔断降级等功能。

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

  • 核心库(Java 应用客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持(见 主流框架适配)。是真正的规则执行者。
  • 控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。它只是一个控制台(控制台是可选的),本身不负责存储规则和流量控制。

二、Sentinel 基本概念

资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。

只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。

规则

围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。

三、Sentinel控制台Dashboard

Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。 (流控和服务降级规则的具体执行还是应用中的Sentinel,而不是控制台

Sentinel 控制台包含如下功能:

  • 查看机器列表以及健康情况:收集 Sentinel 客户端发送的心跳包,用于判断机器是否在线。
  • 监控 (单机和集群聚合):通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最终可以实现秒级的实时监控。
  • 规则管理和推送:统一管理推送规则(但不存储规则,不执行规则)。
  • 鉴权:生产环境中鉴权非常重要。这里每个开发者需要根据自己的实际情况进行定制。

   1、下载:https://github.com/alibaba/Sentinel/releases

   2、运行:

java -Dserver.port=8383 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.2.jar

其中 -Dserver.port=8383 用于指定 Sentinel 控制台监听端口为 8383 

 3、启动后浏览器访问:http://IP:端口   (用户名密码默认都是sentinel)

 这里还看不到应用情况。因为这时没有应用向Sentinel报告情况。

四、Sentinel客户端(应用程序)

Sentinel本身是独立组件,可以不与Spring Cloud绑定。但是由于使用Spring Cloud比较多,这里也使用Spring为例。

在之前的工程(  以此工程为基础  https://blog.csdn.net/zyplanke/article/details/120860958 ) 的基础上。

1、增加sentinel依赖

  1. ------ 省略 ------
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  5. <version>${springcloudalibaba.version}</version>
  6. </dependency>
  7. ------ 省略 ------

2、增加应用与控制台之间的互联参数。

以下方法一与方法二任选其一即可,两种配置效果等价

【方法一】:在Java启动时增加两个 JVM参数

-Dcsp.sentinel.dashboard.server=IP:8383
-Dcsp.sentinel.api.port=8719 

第1个JVM参数为:Sentinel控制台地址,该应用程序(客户端)会自动向

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/739446
推荐阅读
相关标签
  

闽ICP备14008679号