美文网首页
服务熔断与降级-Sentinel

服务熔断与降级-Sentinel

作者: NeuBLUE | 来源:发表于2020-09-17 15:43 被阅读0次

Sentinel 是什么?

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

运行

Sentinel包括服务端和客户端,服务端有可视化界面,客户端需引入jar后即可和服务端通信并完成限流功能。

客户端

接下来整合Spring boot

1.新建Spring Boot项目,pom.xml导入依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-transport-simple-http</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-transport-common</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-core</artifactId>
            <version>1.8.0</version>
        </dependency>
2.修改配置文件application.properties
server.port=8084
spring.cloud.sentinel.transport.port=8720
3.新建Controller
package com.example.sentinel.controller;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/sentinel")
public class SentinelController {
    @GetMapping(value = "hello")
    @SentinelResource(value = "hello", fallback = "helloFallback")
    public String hello() {
//        throw new RuntimeException("error");
        return "hello sentinel";
    }

    public String helloFallback() {
        return "hello Fallback";
    }
}

4.配置启动项

-Dproject.name=test-sentinel -Dcsp.sentinel.dashboard.server=localhost:8080


SentinelApplication
服务端
启动

https://github.com/alibaba/Sentinel/releases 在这个地址,下载release的jar,然后启动即可。

这个jar是个标准的Springboot应用,可以通过

java -jar sentinel-dashboard-1.8.0.jar来启动,这样就是默认的设置,启动在8080端口。也可以加上一些自定义配置来启动

java -Dserver.port=8080 -Dproject.name=sentinel-dashboard -jar ~/Downloads/sentinel-dashboard-1.8.0.jar。具体配置的解释,可以到控制台介绍上看一下文档。

访问sentinel UI

访问http://localhost:8080/,用户名密码默认都是sentinel

sentinel login
sentinel
配置流控规则
flowLimit
flowLimit
测试

访问http://localhost:8084/sentinel/hello 并且快速刷新

sentinel/hello
fallback.png

hello sentinel 与 hello Fallback会交替出现。
说明sentinel流控已经生效。

相关文章

  • 服务熔断与降级-Sentinel

    Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入...

  • [SpringCloud Alibaba] 浅析Sentinel

    Sentinel 面向云原生微服务的流量控制、熔断降级组件。 搭建 官网下载Sentinel 仪表盘jar包。编译...

  • spring cloud alibaba系列(二)Sentine

    限流组件Sentinel Sentinel是把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务...

  • (一)springcloud服务熔断降级解决方案之Hystrix

    目前主流的服务熔断降级方案,主要有两种:springcloud的Hystrix和Alibaba的Sentinel,...

  • Sentinel 熔断降级

    Sentinel是什么? Sentinel是面向分布式服务架构的轻量级流量控制,熔断降级产品,主要以流量控制为切入...

  • 聊聊服务熔断降级Sentinel

    简介 分布式系统的流量防卫兵,Sentinel是面向分布式服务框架的流量控制组件,主要以流量为切入点,从限流、流量...

  • sentinel 流控

    sentinel 入口看这个合适: 转载:这个注解一次搞定限流与熔断降级:@SentinelResource - ...

  • Alibaba Sentinel超详细整理

    Alibaba Sentinel 是面向云原生微服务的流量控制,熔断降级组件,监控保护你的微服务 github[h...

  • Sentinel降级规则

    服务降级 Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如:调用超时或异常比例升高),对这个...

  • Alibaba Sentinel LeapArray 源码分析

    最近在使用Alibaba Sentinel来做服务的限流、熔断和降级。一直有一个比较好奇的点,Sentinel是如...

网友评论

      本文标题:服务熔断与降级-Sentinel

      本文链接:https://www.haomeiwen.com/subject/lypqyktx.html