springboot 结合阿里云ahas-sentinel完成限流和降级功能开发

/ 0条评论 / 0 个点赞 / 1291人阅读

首先购买阿里云服务器 阿里云ECS购买地址,当然也可以使用公网服务器,目前阿里云只是应用高可用的区域暂时只有这些,如果不是这些区域的ECS实例则选择公网。

/upload/article/png/520520_20210824110040.png

pom文件中增加

<dependency>
			  <groupId>com.alibaba.csp</groupId>
			  <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
			  <version>1.9.6</version>
			</dependency>

在springboot的yml文件中增加以下参数

#sentinel接口限流和降级处理
 ahas:
   namespace: default
   license: ${license}
 project:
   name: museum_cloud_app_api_${localip}

license是开通应用高可用以后的字符串

name为名称

${localip}是因为我的应用是放在挂载的服务器中,公用了一份程序,所以为了区分应用名称,则使用了变量,此变量在应用启动前需要获取本地服务器ip,替换该值。

如果是以jar启动的方式则在启动类中加入以下代码给变量赋值

public static void main(String[] args) {
		InetAddress ia = null;
        try {
            ia = ia.getLocalHost();
            String localip = ia.getHostAddress();
            System.setProperty("localip", localip);
        } catch (Exception e) {
            e.printStackTrace();
        }
		SpringApplication.run(CloudApplication.class, args);
	}

如果是单独打war包启动则需要新增web应用初始化类

package com.zxlhdata.module.api.config;

import java.net.InetAddress;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.web.WebApplicationInitializer;

@Order(1)
public class MyWebApplicationInitializer implements WebApplicationInitializer {
    private Logger logger = LoggerFactory.getLogger(MyWebApplicationInitializer.class);

    @Override
    public void onStartup(ServletContext paramServletContext) throws ServletException {
    	InetAddress ia = null;
        try {
            ia = ia.getLocalHost();
            String localip = ia.getHostAddress();
            System.setProperty("localip", localip);
        } catch (Exception e) {
            e.printStackTrace();
        }
        logger.info("启动加载自定义的MyWebApplicationInitializer");
        System.out.println("启动加载自定义的MyWebApplicationInitializer");
    }

}

以上配置好以后,启动就能在阿里云应用高可用中查看和设置限流和降级的功能,应用高可用,点击应用防护

/upload/article/png/520520_20210824110952.png

/upload/article/png/520520_20210824111036.png