服务熔断与降级-Sentinel

Sentinel 是什么?

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

运行

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

客户端

接下来整合Spring boot

1.新建Spring Boot项目,pom.xml导入依赖
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
            2.2.1.RELEASE
        
        
            com.alibaba.csp
            sentinel-transport-simple-http
            1.8.0
        
        
            com.alibaba.csp
            sentinel-transport-common
            1.8.0
        
        
            com.alibaba.csp
            sentinel-core
            1.8.0
        
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)