zoukankan      html  css  js  c++  java
  • nacos 集群管理服务临时实例数据

    1. 按服务名选择 nacos 节点,即一个服务的实例增删改,只由特定的 nacos 节点负责

    com.alibaba.nacos.naming.web.DistroFilter#doFilter
    com.alibaba.nacos.naming.core.DistroMapper#responsible(java.lang.String)

    2. 当前 nacos 节点对服务实例增删改后,会重新把数据同步给其他节点

    // com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroConsistencyServiceImpl#put
    public void put(String key, Record value) throws NacosException {
        onPut(key, value);
        // 把同步数据的任务放入队列
        taskDispatcher.addTask(key);
    }
    // com.alibaba.nacos.naming.consistency.ephemeral.distro.DataSyncer#submit

    用到了一些技巧,批量同步

    3. 当前 nacos 节点定时计算自己所负责的服务实例的 md5 值,同步给其他 server,这是对 2 的一个后备

    // com.alibaba.nacos.naming.consistency.ephemeral.distro.DataSyncer.TimedSync#run

    这是一个全量数据 md5 值的同步

    当目标节点收到全量数据 md5 值后,筛选出 toUpdateKeys 和 toRemoveKeys,然后从源节点同步数据

    // DistroConsistencyServiceImpl#onReceiveChecksums
    try {
        byte[] result = NamingProxy.getData(toUpdateKeys, server);
        processData(result);
    } catch (Exception e) {
        Loggers.DISTRO.error("get data from " + server + " failed!", e);
    }
  • 相关阅读:
    redis集群的测试
    nginx+tomcat集群
    linux 端口占用查看 netstat -tunpl | grep 6379
    Openfire 的安装和配置
    openfire自定义发送消息
    druid+spring配置
    java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
    Tomcat8安装, 安全配置与性能优化
    ssh 免密码登录【用】
    SSH-KeyGen 的用法
  • 原文地址:https://www.cnblogs.com/allenwas3/p/12195781.html
Copyright © 2011-2022 走看看