监听服务的四种实现方式,以监听 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());
}
}
}

Nacos 服务状态监听四种写发的更多相关文章

  1. Socket(TCP)客户端请求和服务端监听和链接基础(附例子)

    一:基础知识回顾 一: Socket 类 实现 Berkeley 套接字接口. Socket(AddressFamily, SocketType,ProtocolType) 使用指定的地址族.套接字类 ...

  2. OSGi 系列(七)之服务的监听、跟踪、声明等

    OSGi 系列(七)之服务的监听.跟踪.声明等 1. OSGi 服务的事件监听 和 bundle 的事件监听类似,服务的事件监听是在服务注册.注销,属性被修改的时候,OSGi 框架会发出各种不同的事件 ...

  3. Android USB大容量存储时SD卡状态监听(转)

    对SD卡状态监听,到现在为止我知道的有两种方式: 1.注册StorageEventListener来监听sd卡状态 StorageEventListener中有onStorageStateChange ...

  4. Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...

  5. 截屏状态监听 - iOS

    既接到电话状态监听的需求之后再次添加了截屏状态的监听,当使用 App 时若用户执行截屏操作需要对当前状态进行监听操作,下面有两种方法,其中可以替换截屏的图片内容(Plan A),也可以弹出提示框(Pl ...

  6. 录屏状态监听之防录屏 - iOS

    继之前接到电话.短信和截屏监听需求之后,在 iOS 11.0 系统之上新增了屏幕录制的新功能玩法,所以也随之迎来了新的屏幕录制监听的需求,即防录屏功能监听 ... 通过官方文档得知 capturedD ...

  7. watch实现监听Vuex状态监听(利用computed)

    Vuex 通过 store 选项,提供了一种机制将状态从根组件"注入"到每一个子组件中(需调用 Vue.use(Vuex)):通过在根实例中注册 store 选项,该 store ...

  8. linux上使用netstat查看当前服务和监听端口

    netstat这个命令常用在网络监控方面.利用这个命令,可以查看当前系统监听的服务和已经建立的服务,以及相应的端口.协议等信息. netstat参数说明 netstat参数虽然很多,但是常用的不多,主 ...

  9. iOS实现电话状态监听 CoreTelephony

    在程序中如果需要监听电话状态,可以引入CoreTelephony框架,这个框架包含了电话相关的API,可以实现监测来电,查看运营商信息等功能.下面就是具体的实现监测来电的代码.一定要把center写成 ...

  10. android切换前后台状态监听

    public class BaseApplication extends Application { private static BaseApplication instance; /** * 当前 ...

随机推荐

  1. 题解 P4819

    前言: 看到目前的题解当中没有并查集做法,于是写一篇水水. 题目描述: 给定一张图,一个图中有黑白两种颜色,已知黑色的点有且只有一个,且每个点是黑色的概率相等,然后点 \(u\) 与点 \(v\) 之 ...

  2. 一篇文章带你了解Python基础测试工具——UnitTest

    一篇文章带你了解Python基础测试工具--UnitTest 测试人员一般使用Python作为主语言脚本来进行自动化开发,而Python自带的UnitTest脚本通常就是测试人员首先掌握的 那么本篇文 ...

  3. L2-037 包装机

    #include <bits/stdc++.h> using namespace std; const int N = 110; stack<char> stk[N]; int ...

  4. 35个超实用excel快捷键

    以下是一些常用的Excel快捷键,希望对你有所帮助.如果你想要了解更多快捷键,可以参考Excel的官方文档或者在网上搜索相关信息. Ctrl + C:复制选定的单元格或单元格范围. Ctrl + X: ...

  5. ML.NET 3.0 增强了深度学习和数据处理能力

    .NET团队在 2023.11.28 在博客上正式发布了 ML.NET 3.0::https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0 ...

  6. Windows服务器,通过Nginx部署VUE+Django前后端分离项目

    目录 基本说明 安装 Nginx 部署 VUE 前端 部署 Django 后端 Django admin 静态文件(CSS,JS等)丢失的问题 1. 基本说明 本文介绍了在 windows 服务器下, ...

  7. 从根上理解elasticsearch(lucene)查询原理(2)-lucene常见查询类型原理分析

    大家好,我是蓝胖子,在上一节我提到要想彻底搞懂elasticsearch 慢查询的原因,必须搞懂lucene的查询原理,所以在上一节我分析了lucene查询的整体流程,除此以外,还必须要搞懂各种查询类 ...

  8. python操作mongodb副本集(mongodb高可用)

    https://pymongo.readthedocs.io/en/stable/examples/high_availability.html# pymongo比较"智能",只要 ...

  9. GaussDB(DWS)中的分布式死锁问题实践

    本文分享自华为云社区<GaussDB(DWS)中的分布式死锁问题实践>,作者: 他强由他强 . 1.什么是分布式死锁 分布式死锁是相对于单机死锁而言,一个事务块中的语句,可能会分散在集群里 ...

  10. 关于SpringBoot中出现的循环依赖问题

    环境: SpringBoot2.7.8 背景: 在增加出库订单时需要对物品表的的数量进行修改 因此我在OutboundController中创建了几个公共方法,并将其注入到Spring中,结果给我报了 ...