Nacos 服务状态监听四种写发

简介: Nacos 服务状态监听四种写发

监听服务的四种实现方式,以监听 Nacos 服务为例

1. 传统方式

public void subscribe() {
    try {
            NamingService namingService = NamingFactory.createNamingService("127.0.0.1:8848"); 
            namingService.subscribe("serverName","groupName",new EventListener() {
                @Override
                public void onEvent(Event event) {
                   if (event instanceof NamingEvent) {
                        System.out.println("服务名:"+((NamingEvent)event).getServiceName());
                        System.out.println("实例:"+((NamingEvent)event).getInstances());
                    }
                }
            });
    } catch (NacosException e) {
        logger.error(e.getMessage(), e);
    }
}

2. 简写方式

public void subscribe() {
    try {
            NamingService namingService = NamingFactory.createNamingService("127.0.0.1:8848"); 
            namingService.subscribe("serverName","groupName", event -> {
                if (event instanceof NamingEvent) {
                    System.out.println("服务名:"+((NamingEvent)event).getServiceName());
                    System.out.println("实例:"+((NamingEvent)event).getInstances());
                }
            });
    } catch (NacosException e) {
        logger.error(e.getMessage(), e);
    }
}

3. 独立方法

public void subscribe() {
    try {
            NamingService namingService = NamingFactory.createNamingService("127.0.0.1:8848"); 
            namingService.subscribe("serverName","groupName", serviceListener);
    } catch (NacosException e) {
        logger.error(e.getMessage(), e);
    }
} 
EventListener serviceListener = (event) ->
{
    if (event instanceof NamingEvent) {
        System.out.println("服务名:"+((NamingEvent)event).getServiceName());
        System.out.println("实例:"+((NamingEvent)event).getInstances());
    }
};

4. 独立文件

public void subscribe() {
    try {
            NamingService namingService = NamingFactory.createNamingService("127.0.0.1:8848"); 
            namingService.subscribe("serverName","groupName", new NacosListener());
    } catch (NacosException e) {
        logger.error(e.getMessage(), e);
    }
} 
//单独Class类
public class NacosListener implements EventListener {
    @Override
    public void onEvent(Event event) {
        if (event instanceof NamingEvent) {
            System.out.println(((NamingEvent)event).getServiceName());
            System.out.println(((NamingEvent)event).getInstances());
        }
    }
}

 

目录
相关文章
|
消息中间件 缓存 资源调度
【Java项目】使用Nacos实现动态线程池技术以及Nacos配置文件更新监听事件
【Java项目】使用Nacos实现动态线程池技术以及Nacos配置文件更新监听事件
386 0
|
4天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
21 1
Nacos配置中心
|
4月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
99 5
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
128 3
|
4天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
13 4
|
4天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
15 3
|
4天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
13 3
|
12天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
36 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
3月前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
115 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
下一篇
无影云桌面