监听服务的四种实现方式,以监听 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. [Python急救站]草莓熊的绘制

    草莓熊也是一个热门的图案,今天就用Python绘制一下 import turtle as t # 设置背景颜色,窗口位置以及大小 t.colormode(255) # 颜色模式 t.speed(0) ...

  2. Python Web UI自动化报错 :ResourceWarning: Enable tracemalloc to get the object allocation traceback

    ResourceWarning资源警告解决方案 原因:在执行线性脚本完毕时,没有及时释放相应资源,导致内存堆积,从而造成内存溢出(如关闭浏览器等操作),此时,Python将会做出提醒: 在百度吸取 网 ...

  3. Java表达式引擎选型调研分析

    1 简介 我们项目组主要负责面向企业客户的业务系统,企业的需求往往是多样化且复杂的,对接不同企业时会有不同的定制化的业务模型和流程.我们在业务系统中使用表达式引擎,集中配置管理业务规则,并实现实时决策 ...

  4. 如何保证Spring Boot接口安全的呢?

    在保证Spring Boot接口安全时,我们需要关注的主要方面包括:认证(Authentication).授权(Authorization).数据安全性(Data Security).以及防止常见的W ...

  5. MySQL - Plugin 'InnoDB' registration as a STORAGE ENGINE failed 错误处理

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin Plugin 'InnoDB' registration as a STORAGE ENGINE failed,从详细 ...

  6. 如何用excel制作图表?

    Excel是一个非常强大的电子表格软件,其中包含了很多绘制图表的功能.下面是一些基本步骤,可以帮助你用Excel制作图表: 打开Excel并输入数据.在Excel中,首先需要输入需要制作图表的数据.可 ...

  7. [Python急救站]火车购票程序

    火车购票程序 如果要一直执行程序,加个while循环即可.要是要智能判断月份,可以通过调取当前时间进行判断即可. print(""" 1.每年的1-3月和7-9月凭学生证 ...

  8. AtCoder_abc331

    AtCoder_abc331 (这次题真的真的真的好难) 比赛链接 A - Tomorrow 题目链接 题目大意 有一个\(M\)个月,\(D\)天的日历,请输出\(y年m月z日\)的下一天. 解题思 ...

  9. python学习笔记:python的字符串拼接效率分析

    问题的起因是因为在做LeetCode5714题的时候,对于字符串拼接使用了 ans = ans+s[i] 提交后超时了,改成 ans+=s[i] 就可以通过了,而且用c++好像也有这个问题,在此记录一 ...

  10. 启发式搜索(heuristic search)———A*算法

    在宽度优先和深度优先搜索里面,我们都是根据搜索的顺序依次进行搜索,可以称为盲目搜索,搜索效率非常低. 而启发式搜索则大大提高了搜索效率,由这两张图可以看出它们的差别: (左图类似与盲搜,右图为启发式搜 ...