首先购买阿里云服务器 阿里云ECS购买地址,当然也可以使用公网服务器,目前阿里云只是应用高可用的区域暂时只有这些,如果不是这些区域的ECS实例则选择公网。
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"); } }
以上配置好以后,启动就能在阿里云应用高可用中查看和设置限流和降级的功能,应用高可用,点击应用防护
本文由 admin 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2022-08-09 22:42:47