自定义acuator端口

java 复制代码
@Component
@Endpoint(id = "nacos-deregister-instance")
public class NacosDeRegisterInstanceEndpoint {
    public static final Logger logger = LoggerFactory.getLogger(NacosDeRegisterInstanceEndpoint.class);
//    @Resource
//    private SpringClientFactory springClientFactory;

    @Resource
    private RefreshScope refreshScope;

    @Resource
    private NacosDiscoveryProperties nacosDiscoveryProperties;

    public NacosDeRegisterInstanceEndpoint(NacosDiscoveryProperties nacosDiscoveryProperties) {
        this.nacosDiscoveryProperties = nacosDiscoveryProperties;
    }

    @ReadOperation
    public String deregisterInstance() {
        String serviceName = nacosDiscoveryProperties.getService();
        String groupName = nacosDiscoveryProperties.getGroup();
        String clusterName = nacosDiscoveryProperties.getClusterName();
        String ip = nacosDiscoveryProperties.getIp();
        int port = nacosDiscoveryProperties.getPort();
        logger.info("deregister from nacos, serviceName:{}, groupName:{}, clusterName:{}, ip:{}, port:{}", serviceName, groupName, clusterName, ip, port);
        try {
            nacosDiscoveryProperties.namingServiceInstance().deregisterInstance(serviceName, groupName, ip, port, clusterName);
            refreshScope.refresh(serviceName);
        } catch (NacosException e) {
            logger.error("deregister from nacos error", e);
            return "error";
        }
        return "success";
    }

        @ConditionalOnClass(Endpoint.class)
    @ConditionalOnBean(type = "com.alibaba.cloud.nacos.NacosDiscoveryProperties")
    public class NacosDeRegisterInstanceEndpointAutoConfiguration {

        @Resource
        private NacosDiscoveryProperties nacosDiscoveryProperties;

        @ConditionalOnMissingBean
        @Bean
        public NacosDeRegisterInstanceEndpoint nacosDeRegisterEndpoint() {
            return new NacosDeRegisterInstanceEndpoint(nacosDiscoveryProperties);
        }
    }
}

服务下线

java 复制代码
management:
  endpoints:
    web:
      exposure:
        include: health,shutdown,service-registry,nacos-deregister-instance
  endpoint:
    health:
      show-details: always
    shutdown:
      enabled: true
    nacos-deregister-instance:
      enabled: true
java 复制代码
management:
  endpoints:
    web:
      exposure:
        include: health,shutdown,service-registry
      path-mapping:
        service-registry: deregister
  endpoint:
    health:
      show-details: always
    shutdown:
      enabled: true
    nacos-deregister-instance:
      enabled: true
相关推荐
代码什么用2 小时前
Spring基础使用
java·后端·spring
代码什么用2 小时前
Spring对IoC的实现
数据库·spring
程序员老陆2 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光2 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
Su米苏3 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园3 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁3 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网3 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西3 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨4 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言