private int waitTime = 8; //等待几秒 todo // private String nacosMetaUrl = "http://10.18.225.115:8848/nacos/v1/ns/instance/metadata/batch private String nacosMetaProt = "http://"; private String nacosMetaHttpProt = "PUT"; private String nacosMetaUrl = "/nacos/v1/ns/instance/metadata/batch"; @Autowired NacosDiscoveryProperties nacosDiscoveryProperties; /** * * <pre> * 如果通过配置dubbo.service.shutdown.wait=20000(默认10000,10秒)这种方式, * k8s.terminationGracePeriodSeconds=缩小时间间隔, * 则会有线上的在途服务突然中断或者其他错误, * * 借助k8s的容器层的preStop来做灰度下线,并不影响线上服务, * * a. 先让nacos服务主动下线, * b. 然后等待一段时间再关闭容器(尽量是5秒以上), * c. 设置nacos的心跳超时(可选) * * 主动下线方法中,1调nacos实例下线(no run),2.调nacos的超时(仅在springcloud服务中能和),3.调dubbo的hoop shutdown接口 * 最后选择用3.dubbo的shutdown接口 * * 不能做到绝对的灰度 * * </pre> * * @param map * @return 成功标记 */ public boolean nacosDown(Map map) { String serviceName = nacosDiscoveryProperties.getService(); String groupName = nacosDiscoveryProperties.getGroup(); String clusterName = nacosDiscoveryProperties.getClusterName(); String server = nacosDiscoveryProperties.getServerAddr(); String ip = nacosDiscoveryProperties.getIp(); int port = n
Nacos2.0.3 Dubbo k8s灰度下线
最新推荐文章于 2024-06-04 16:39:50 发布