使用sentinel进行服务熔断和服务降级

注意sentinel要与项目能ping通,若sentinel在云服务器上,而项目在本地,则无法连接

1、使用docker安装sentinel(可以上网搜镜像文件)

注意:端口应该为8858,账号和密码为sentinel

2、使用ip:8858访问sentinel页面,可以设置服务的熔断和降级规则。由哪个方法降级到哪个方法,这部分不需要通过sentinel控制台来做,在代码里即可完成。

3、在项目父工程冲,引入依赖(注意这个type和scope与子工程有关,必须要写)

            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.SR10
                pom
                import
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.5.RELEASE
                pom
                import
            

4、在项目子工程中,引入依赖


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
        

5、显式添加 Hibernate 和 Validator 依赖,可以避免sentinel依赖导致启动失败


        
            org.hibernate.validator
            hibernate-validator
            6.1.5.Final 
        
        
            javax.validation
            validation-api
            2.0.1.Final 
            
        

6、在项目子工程中,yml配置:

spring:
  cloud:
    sentinel:
      transport:
        dashboard: ip:8858

7、完成服务降级:

在方法上使用这个注解,value是sentinel里的方法名称(默认是当前方法的方法名)。fallback是降级的sentinel里的方法名称(默认是降级方法的方法名)。

注意:sentinel里的方法名称只有在该方法被调用后才会在sentinel出现。

 @SentinelResource(value = "", fallback = "")

例如:

    @RequestMapping(value = "draw",method = RequestMethod.POST)
    @SentinelResource(value = "draw", fallback = "fallbackDraw")//sentinel里的显示的服务名称,要对这个服务进行熔断降级操作。fallback是降级的服务名称,在代码里写的
    public String draw() {
        return "success";
    }

    public String fallbackDraw() {
       return "fallbacksuccess";
    }

sentinel里的界面为:

注意:这里的方法名默认是代码里的方法名,并且该方法被调用才会出现在sentinel。 

 

 

 

你可能感兴趣的:(知识杂谈,sentinel)