nacos 基于 2.2.4 版本 任务执行器的设计 在 nacos 中,所有的任务都实现了 NacosTask 接口,所有的任务执行器都实现了 NacosTaskExecuteEngine 接口。 接下来看看这两个接口的设计 1 2 3 4 5 6 7 8 9 10
时间轮的用法 1 2 3 4 5 6 7 8 9 // 默认间隔时间为 100 毫秒 Timer timer = new HashedWheelTimer(); Timeout timeout = timer.newTimeout(new TimerTask() { @Override public void run(Timeout timeout) throws Exception { System.out.println("run"); } }, 10, TimeUnit.SECONDS); timer.stop(); 时间轮的原理 有一个环形数组,每个格子都
nacos 基于 2.2.4 版本 nacos 订阅服务主要分为 http+udp 和 grpc 这两种方式,这两者的内部调用方法都是一样的,这里主要分析 http+udp 的方式。 订阅服务的 curl 1 curl --location 'localhost:8848/nacos/v2/ns/instance/list?serviceName=test' 订阅服务的主流程 源
nacos 基于 2.2.4 版本 注销实例的 curl 1 2 3 4 5 curl --location --request DELETE 'http://localhost:8848/nacos/v2/ns/instance' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'serviceName=test' \ --data-urlencode 'ip=1.2.3.4' \ --data-urlencode 'port=80' 注销实例的主流程 源码位置: com.alibaba.nacos.naming.controllers.v2.InstanceControllerV2#deregister 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public Result<String> deregister(InstanceForm instanceForm) throws NacosException {
nacos 基于 2.2.4 版本 注册实例的 curl 1 2 3 4 5 curl --location 'http://localhost:8848/nacos/v2/ns/instance' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'serviceName=test' \ --data-urlencode 'ip=1.2.3.4' \ --data-urlencode 'port=80' 注册实例的主流程 源码位置: com.alibaba.nacos.naming.controllers.v2.InstanceControllerV2#register 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public Result<String> register(InstanceForm instanceForm) throws NacosException { // check
nacos 基于 2.2.4 版本 下载源码和编译 1 2 3 git clone git@github.com:alibaba/nacos.git mvn clean install -U -DskipTests 配置环境 参考 startup.sh 文件,添加相应的 jvm 和 program 的参数。 添加 jvm 参数,-Dnacos.standalone