一. SpringCloud Alibaba Sentinel 基础使用示例

2023-11-12

一. 基础解释

github sentinel
中文版

  1. SpringCloud Alibaba Sentinel 分布式系统的流量防卫兵,实现了比 Hystrix 更强大的服务降级,服务熔断,流量监控,限流速率等
  2. Sentinel 分为两部分: 核心库与控制后台,对dubbo,SpringCloud有较好的支持,基于SpringBoot开发,打包后可以直接运行
  3. Sentinel 与 Hystrix 不同

Hystrix 需要手动搭建服务,在该服务中引入 Hystrix 依赖,通过代码的方式设置对整个项目服务保护,流量控制等,当请求实际服务时,首先请求到这个 Hystrix 服务,通过该服务去调用实际服务
Hystrix 没有 web 界面
不能实时的根据生产场景动态的控制访问流量,速率,服务熔断,降级等

Sentinel 独立成功一个组件,不在需要搭建服务,运行组件即可
提供 web 界面,支持细粒度统一配置

在这里插入图片描述

Sentinel 下载启动

  1. Sentinel 需要下载运行,下载地址
    在这里插入图片描述
  2. 将下载后的jar包放入非中文路径下,cmd 进入命令行,切换到该路径下进行启动: “java -jar 下载的sentinel包名”
  3. 注意点运行 Sentinel 要有 jdk8 环境,并且不能占用 8080 端口
  4. 浏览器访问 Sentinel “http://localhost:8080”,输入用户名密码登入,默认"sentinel"
    在这里插入图片描述

二. Sentinel 使用示例

  1. Sentinel 保护服务使用示例步骤
  • 创建需要 Sentinel 的微服务项目
  • pom 文件中增加 Sentinel 依赖
  • yml 文件中增加将当前服务注入到 Sentinel 中被,Sentinel监控配置
  • 创建启动类
  • 服务接口调用
  1. 注意点 Sentinel 是懒加载机制,被Sentinel监管的服务要启动成功后并且执行一次调用后,访问 Sentinel 才会看到,Sentinel默认使用8080端口,该端口不可以被其它服务占用

创建被 Sentinel 监管的服务

  1. pom 文件中增加 Sentinel 依赖 SpringCloud ailibaba sentinel
 		<!-- SpringCloud ailibaba nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud ailibaba sentinel-datasource-nacos 持久化需要用到-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>
        <!-- SpringCloud ailibaba sentinel-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  1. yml 文件中增加 Sentinel 相关配置,将当前服务注入到指定的 Sentinel 上
server:
  port: 8401 #当前服务端口号

spring:
  application:
    name: cloudalibaba-sentinal-service #当前服务名称

  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos服务注册中心地址,将当前服务注册到Nacos
        
	#===============sentinel 相关配置================================
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel dashboard地址,当前服务被指定的 Sentinel 监管
        # 默认8719端口,假如被占用了会自动从8719端口+1进行扫描,直到找到未被占用的 端口
        port: 8719
     #===============sentinel 相关配置end================================

#配置暴露当前服务端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

  1. 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class SentinelMain8401 {
    public static void main(String[] args) {
        SpringApplication.run(SentinelMain8401.class, args);
    }
}
  1. 提供测试接口,访问服务中的接口后,当前服务才会在 Sentinel 中显示(Sentinel 懒加载机制)
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test1")
    public String getVal(){
        return "测试接口";
    }

    @GetMapping("/test2")
    public String getVal2(){
        return "测试接口2";
    }
}
  1. 浏览器访问 Sentinel web 页面
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一. SpringCloud Alibaba Sentinel 基础使用示例 的相关文章

  • iLogtail专题六:实际场景采集模拟

    公司一直使用的Filebeat进行日志采集 由于Filebeat采集组件一些问题 现需要使用iLogtail进行代替 现记录下iLogtail介绍和实际使用过程 这是iLogtail系列的第六篇文章 背景 由于平时日志采集存在堆栈信息日志情
  • python 学习笔记06: dict(字典)类型的操作

    usr bin env python3 coding utf 8 Created on Mon Mar 25 22 04 09 2019 author sungang 今天学习python中用数据类型 dict 字典 学习一个类型 最好的办
  • LeetCode 136.只出现一次的数字

    题目描述 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 示例 1 输入 2 2 1 输出 1 示例 2 输入 4 1

随机推荐

  • 杀毒软件会从哪些方面对计算机进行保护作用(360杀毒软件)

    360杀毒软件介绍 360杀毒软件介绍 360杀毒是360安全中心出品的一款免费的云安全杀毒软件 它创新性地整合了五大领先查杀引擎 包括国际知名的BitDefender病毒查杀引擎 Avira 小红伞 病毒查杀引擎 360云查杀引擎 360
  • 《因果科学周刊》第5期:OOD 泛化

    为了帮助大家更好地了解因果科学的最新科研进展和资讯 我们因果科学社区团队本周整理了第5期 因果科学周刊 推送近期因果科学值得关注的论文和资讯信息 本期的主题是 OOD 泛化 另外在 近期社区活动 专栏 我们将介绍清华副教授崔鹏在 NeurI
  • 借助人工智能,产品文章直接生成字幕视频

    const name 产品文章生成视频 console log name 拍视频不是我的强项 但我发现现在只需要通过AI就可以直接把产品文字变成短视频 省去了剪辑的烦恼 我们来看看文本生成的视频效果预览 为了方便在页面上展示 下面显示的视频
  • 编写程序,输出100以内能够整除7,但不能整除5的数。要求每一行输出6项数据。

    from math import n 0 for i in range 1 101 if i 7 0 and i 5 0 print gt 2d format i end n n 1 if n 6 0 print
  • 反射与注解(详细)

    文章目录 一 注解Annotation 1 什么是注解 2 内置注解 3 元注解 4 自定义注解 二 反射机制 1 静态vs动态语言 动态语言 静态语言 2 java反射机制概述 3 java反射机制研究及应用 反射机制提供的功能 优点 缺
  • 如何判断1024!末尾有多少个0

    分析 方法一 暴力法 简单的方法就是就算出1024 的值 然后判断末尾有多少个0 但是这种方法有两个非常大的缺点 第一算法效率非常低下 第二 当这个数字比较大的时候直接计算阶乘可能会导致数据溢出 从而导致计算结果出现偏差 因此 下面给出另外
  • mysql 按时间降序排序、时间为空的排在前面

    SELECT FROM t task info ORDER BY IF ISNULL end at 0 1 end at ASC
  • web安全--文件上传漏洞实例操作

    1 进入owasp靶机测试环境 进入dvwa login登录名和密码都为admin2 2 进入DVWA Security选择安全级别 首先选择低安全级别 3 进入upload 可以选择右下角的view resource 查看后端源码可以上传
  • SpringBoot入门学习—— 三、项目属性配置

    三 项目属性配置 第一种 application properties 访问http 127 0 0 1 8081 girl hello 第二种 application yml 填写属性需要空格 idea中颜色会变 访问网址 http 12
  • 打不开github

    https blog csdn net qq 41176055 article details 128496628
  • BearPi-HM Micro 鸿蒙应用开发体验

    这是在去年小熊派开发的一款开发板 核心STM32MP157 我之前也花了一些时间来学习开发了一个应用 包含南向各种外设驱动的开发和北向hap APP的开发 最终实现了自己的构想 之前没有时间记录 今天简单记录总结 南向开发功能如下 板载陀螺
  • k8s笔记24--安装metrics-server及错误处理

    k8s笔记24 安装metrics server及错误处理 1 介绍 2 安装 3 常见错误 第一次错误 持续 Failed probe 第二次错误 bad status code 403 Forbidden 4 说明 1 介绍 最近一个同
  • 机器学习课程笔记(一)导论

    符号与名词定义 有监督学习的输入被称作input variables features attributes 有监督学习的输出被称作output variables targets 输入 输出被称作training example inst
  • postgresql常用命令

    环境 Ubuntu 16 04 LTS 数据库版本 9 6 6 注意 PostgreSQL中的不同类型的权限有SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER CREATE CO
  • 一文带你全面深入了解TreeMap

    概述 TreeMap是Map家族中的一员 也是用来存放key value键值对的 平时在工作中使用的可能并不多 它最大的特点是遍历时是有顺序的 根据key的排序规则来 那么它具体是如何使用 又是怎么实现的呢 本文基于jdk8做一个讲解 Tr
  • 3、选择判断语句、循环语句

    选择判断 单分支选择判断 if 语法 if 条件语句 执行语句 可以有多条执行语句 简体 if 条件语句 单条执行语句 如果条件语句后面没有大括号 则条件语句所控制的执行语句只能有一条 双分支选择判断 if else 语法 if 条件语句
  • 文件(file)和流(stream)的联系和区别

    文件 File 和流 Stream 是既有区别又有联系的两个概念 文件是计算机管理数据的基本单位 同时也是应用程序保存和读取数据的一个重要场所 存储介质 文件是指在各种存储介质上 如硬盘 可移动磁盘 CD等 永久存储的数据的有序集合 它是进
  • 2023蓝桥杯c/c++省赛B组题目(最全版):

    目录 A 日期统计 B 01 串的熵 C 冶炼金属 D 飞机降落 E 接龙数列 F 岛屿个数 G 子串简写 H 整数删除 I 景区导游 J 砍树 A 日期统计 B 01 串的熵 用Excel做比较方便 让我看看有谁 哈哈哈哈哈 答案当然就是
  • 力扣算法——简单题 回文数(Java解法)

    题目描述 判断一个整数是否是回文数 回文数是指正序 从左向右 和倒序 从右向左 读都是一样的整数 例如 121 13431 是回文数返回true 不是则返回false 解题思路 首先可以排除负数 比如 2332 从左向右读 为 2332 从
  • 一. SpringCloud Alibaba Sentinel 基础使用示例

    目录 一 基础解释 Sentinel 下载启动 二 Sentinel 使用示例 创建被 Sentinel 监管的服务 一 基础解释 github sentinel 中文版 SpringCloud Alibaba Sentinel 分布式系统