首页 > 其他分享 >nacos 定义上下线接口

nacos 定义上下线接口

时间:2023-04-20 11:15:24浏览次数:32  
标签:String nacos 接口 serviceName nacosDiscoveryProperties import port 定义

版本:2021.0.1.0

 <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.1.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

 

代码

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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class NacosController {
    protected final transient Logger log = LoggerFactory.getLogger(getClass());

    @Autowired
    NacosDiscoveryProperties nacosDiscoveryProperties;

    @Autowired
    NacosServiceManager nacosServiceManager;

    /**
     * 服务注册接口
     *
     * @return
     */
    @GetMapping(value = "/api/nacos/register")
    public String registerInstance() {


        String serviceName = nacosDiscoveryProperties.getService();
        String groupName = nacosDiscoveryProperties.getGroup();
        String clusterName = nacosDiscoveryProperties.getClusterName();
        String ip = nacosDiscoveryProperties.getIp();
        int port = nacosDiscoveryProperties.getPort();


        NamingService namingService = nacosServiceManager.getNamingService(nacosDiscoveryProperties.getNacosProperties());
        log.info("register from nacos, serviceName:{}, groupName:{}, clusterName:{}, ip:{}, port:{}", serviceName, groupName, clusterName, ip, port);
        try {
            namingService.registerInstance(serviceName,ip,port);

        } catch (NacosException e) {
            log.error("register from nacos error", e);
            return "error";
        }
        return "success";
    }

    /**
     * 服务注销接口
     *
     * @return
     */
    @GetMapping(value = "/api/nacos/deregister")
    public String deregisterInstance() {
        String serviceName = nacosDiscoveryProperties.getService();
        String groupName = nacosDiscoveryProperties.getGroup();
        String clusterName = nacosDiscoveryProperties.getClusterName();
        String ip = nacosDiscoveryProperties.getIp();
        int port = nacosDiscoveryProperties.getPort();

        NamingService namingService = nacosServiceManager.getNamingService(nacosDiscoveryProperties.getNacosProperties());
        log.info("deregister from nacos, serviceName:{}, groupName:{}, clusterName:{}, ip:{}, port:{}", serviceName, groupName, clusterName, ip, port);
        try {
            namingService.deregisterInstance(serviceName,ip,port);

        } catch (NacosException e) {
            log.error("deregister from nacos error", e);
            return "error";
        }
        return "success";
    }

}

可用于服务的手动上下线,但因为客户端缓存等问题,deregister 调用后需要sleep 30- 60s,然后进行重启

标签:String,nacos,接口,serviceName,nacosDiscoveryProperties,import,port,定义
From: https://www.cnblogs.com/dongma/p/17336043.html

相关文章

  • uniapp h5与app接口路径
      h5版本前面带不带‘/’都不会报错接口路径拼接前应该有逻辑默认补'/'app后就会报错 ......
  • ansible剧本-变量的引用与定义
    ansible剧本-变量的引用与定义Cloud研习社 Cloud研习社 2023-04-2008:43 发表于山东收录于合集#一站式教程224个#ansible26个#云计算205个#计算机193个#linux217个教程每周二、四、六更新ansible_facts中变量的引用:[root@m01ansible]#catfacts_test1_......
  • 记录一次使用 表达式引擎 自定义注解 还有 sql union all 实现对数据库数据提取、重组
    这样编写减少了前后端很多没必要的遍历,以及if判断并最大限度提高了代码的可变通性额外需要学习的是ORM框架下,如何接收多表(各表结构不同)操作后,sql返回的新结构的临时表问题表达式引擎用到的依赖<dependency><groupId>org.apache.commons</groupId>......
  • Vue3 自定义hook
    视频9.自定义hook函数什么是hook?——本质是一个函数,把setup函数中使用的CompositionAPI进行了封装。类似于vue2.x中的mixin。自定义hook的优势:复用代码,让setup中的逻辑更清楚易懂。componentsDemo.vue<template> <h2>当前求和为:{{sum}}</h2> <button@clic......
  • Nacos笔记(五):Nacos集群整合Nginx
    前言Nginx搭建,参考:Linux安装Nginx。1、Nginx配置添加nacos集群,调整端口与服务名,并设置代理,详情如下:   配置详情如下http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout......
  • Linux安装nacos并配置开机启动
    一、Nacos的安装、启动1.解压tar-zxvfnacos-server-1.4.1.tar.gz-C/usr/local注意:nacos的启动需要java的jdk环境支持才能成功运行。2.启动进入目录nacos解压包的bin目录:cd/usr/local/nacos/bin开启./startup.sh非集群模式开启:./startup.sh-mstandalone关闭......
  • python接口自动化
    #coding=utf-8'''python中常用的做接口自动化测试的库有哪些?requests、urllib、urllib3、httplibrequests是开源免费的,应用最多的一个库'''#importrequests#创建接口请求三种方法#r=requests.post(url=url,data=data,json=json)#r=requests.request('psot',url=url......
  • python接口自动化2关联接口
    #coding=utf-8"""===================================深圳多测师信息技术有限公司作者:多测师-小程日期:2023年03月30日==================================="""#关联接口:上一个接口的返回参数作为下一个接口的入参#importrequests#importre#classProvince():......
  • 关于升级nacos版本为2.2.2版本遇到问题
    正常官网下载解压正常启动打开页面会提示未鉴权只需修改conf包下application.properties文件的三个地方即可开启鉴权设置默认账号密码。不能为空base64token这里用的是官方给到的。详细参考官方文档......
  • 接口请求413 Request Entity Too large问题处理
     刚看到这个问题时,发现是请求接口时传递的参数过大,于是就在度娘上搜索了关于这个问题的处理方法;参考了好几篇文章,基本都说是配置问题最终,参考了知乎上的这篇文章:https://zhuanlan.zhihu.com/p/76679642关于上篇文章中的前端配置参数:bodyParser在express4版本中已经被弃用......