大家好,我是烤鸭:
还有2天就过年了,祝大家新年快乐。最近好久没写技术文章了,还是得回归下主业,今天分享下nacos注册中心自动上下负载的方式和组件。
组件版本1.8 2.2.6.RELEASE Hoxton.SR6 2.2.1.RELEASE
使用actuator自带的endpointorg.springframework.boot spring-boot-dependencies${springboot.version} pom import org.springframework.cloud spring-cloud-dependencies${springcloud.version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies${springcloud-alibaba.version} pom import
如果用actuator的接口是可以直接下线的,无需多余开发,只需要引用包就行。
http方式:(支持eurka和nacos)
curl -XPOST http://localhost:8080/actuator/service-registry?status=DOWN -H "Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"
原理是调用ServiceRegistryEndpoint的setStatus。
底层的调用方法:
nacosDiscoveryProperties.namingMaintainServiceInstance() .updateInstance(serviceId, instance);
使用的话,最好还是加上actuator的鉴权。
自研负载组件(源码地址在下面)有时候服务启动就注册到注册中心,但实际并没有准备好。
需要修改服务的自动注册属性,由插件注册(也可以在指定时机进行注册)
spring.cloud.nacos.discovery.register-enabled=false
插件里有两个endpoint
下线:(其中判断只能是localhost地址才能下线,只能下线本机)
// 调用的根源方法 nacosRegistration.getNacosNamingService().deregisterInstance(serviceName, groupName, ip, port, clusterName);
上线:(默认是项目启动时注册,可以自义定时机)
nacosRegistration.getNacosNamingService().registerInstance(serviceName, groupName, instance);
调用方式:(配合脚本使用更香)
#上线 curl -XPOST localhost:8080/actuator/graceful-refresh #下线 curl -XPOST localhost:8080/actuator/graceful-pause使用截图
服务注册成功:
请求下线接口:
脚本方式下线:
开源地址https://gitee.com/fireduck_admin/nacos-ez-updown
总结别总结了,快点下班,回家过年去了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)