使用场景:
主要测试单服务的代码性能、bug瓶颈等,发生问题时,可以保留现场、且不影响流量正常进入(切换是会损失几秒的流量,可以忽略不计)
思路:主服务器在发生雪崩时,从服务自动上线、主服务下线
因为项目的注册发现是基于阿里nacos的,所以使用它 的 api 能力
1. 先启动从服务 ,从服务设置weight=0 ,作为等待随时被切换使用 监控(做个每隔几秒检查服务示范正常,不正常则触发报警)
2. 主服务器是否雪崩,发生雪崩时,监控触发报警机制 自动调用/changeSlave接口进行切换
import cn.hutool.json.JSONUtil;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.NacosServiceManager;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.