nacos注册中心自动上下负载

大家好,我是烤鸭:

 还有2天就过年了,祝大家新年快乐。最近好久没写技术文章了,还是得回归下主业,今天分享下nacos注册中心自动上下负载的方式和组件。

组件版本

    <properties>
        <java.version>1.8</java.version>
        <springboot.version>2.2.6.RELEASE</springboot.version>
        <springcloud.version>Hoxton.SR6</springcloud.version>
        <springcloud-alibaba.version>2.2.1.RELEASE</springcloud-alibaba.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${springcloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${springcloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

使用actuator自带的endpoint

如果用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

总结

别总结了,快点下班,回家过年去了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤鸭的世界我们不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值