7821 字
约 26 分钟
1
JAVA 精髓面试题 · Nacos 配置中心与对比

1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 1、服务启动的时候,通过api发起服务注册,来告诉nacos ,我可以提供服务了 2、服务消费者在启动的时候会拉取 自已要用的服务的列表。 (这只是启动的时候拉取,那平常有上下线服务怎么办呢?定时拉取) 3、消费者会每10秒进行拉取一下数据。拉取我可以调用的服务。 (如果我们只用定时任务拉取配置,那注册服务会有一定的滞后性,那怎么让它具有实时性呢?下面 udp协议) 4、 Nacos服务检测到有异常(服务上下线)就会发送UDP协议给客户端进行更新 (为什么是udp写协议? 因为udp协议相对于tcp协议来说,他并不是可靠的协议,但他的优点就是他非常快,他耗时比较短,不 需要跟自己目标服务器建立长连接,在服务注册这种场景,我们服务消费者要比服务提供者要多很多, 所以每一次 服务的更新, nacos需要和成千上万的消费者,去建立tcp的话,他的性能一定是受不了 的,所以他会选择一个udp协议进行通知,那有的同学会问了, udp他不可靠,他通知失败了怎么办? 大家可以看一下第三部,我们消费者每10秒还会拉取一下服务数据信息 上面说是检测到异常,那Nacos怎样判断异常的呢? 心跳, ) 5、客户端会每5秒定时发送心跳到服务端,来维持他的一个健康的检查, 5、客户端会每5秒定时发送心跳到服务端,来维持他的一个健康的检查, 6、 Nacos定时任务检测:通过每5秒检查一下心跳信息来判断是否超时,就是用当前时间减去上次一心跳 的时间,如果超过15秒则将节点设置为非健康状态并进行广播,如果超过30秒则将节点进行移除,说明 节点不可用。 7、集群数据同步任务使用协议: Distro(AP) , Raft(CP) 7、 Nacos2.X作为注册中心架构流程

8、 Nacos中的Distro协议 8、 Nacos中的Distro协议 Nacos 每个节点自己负责部分的写请求。 每个节点会把自己负责的新增数据同步给其他节点。 每个节点定时发送自己负责数据的校验值到其他节点来保持数据一致性。 每个节点独立处理读请求,及时从本地发出响应。 新加入的 Distro 节点会进行全量数据拉取。 (具体操作是轮询所有的 Distro节点,通过向其他的机器发送请求拉取全量数据。) Nacos1.4.x

1、服务启动进行注册 1、服务启动进行注册 1、服务启动进行注册 1、服务启动进行注册 1、服务启动进行注册 1、服务启动进行注册

11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 11、 Eureka和Nacos对比 1、 Nacos中注册中心会定时向消费者主动推送信息, Eureka会定时向注册中心定时拉去服务,如果不 主动拉去服务,注册中心不会主动推送。 1、 Nacos中注册中心会定时向消费者主动推送信息, Eureka会定时向注册中心定时拉去服务,如果不 主动拉去服务,注册中心不会主动推送。 2、 Nacos支持CP和AP模式, Eureka支持AP模式 3、 Nacos具备服务优雅上下线和流量管理(API+后台管理页面),而Eureka的后台页面仅供展示,需 要使用api操作上下线且不具备流量管理功能。 3、 Nacos具备服务优雅上下线和流量管理(API+后台管理页面),而Eureka的后台页面仅供展示,需 要使用api操作上下线且不具备流量管理功能。 4、 Nacos社区活跃, Eureka开源工作已停止,后续不再有更新和维护 5、从部署来看, Nacos整合了注册中心、配置中心功能,把原来两套集群整合成一套,简化了部署维 护 12、 Nacos配置中心长轮询机制

客户端会轮询向服务端发出一个长连接请求,这个长连接最多30s就会超时,服务端收到客户端的请求 会先判断当前是否有配置更新,有则立即返回如果没有服务端会将这个请求拿住“hold”29.5s加入队列, 最后0.5s再检测配置文件无论有没有更新都进行正常返回,但等待的29.5s期间有配置更新可以提前结 束并返回。

1、服务端配置发生变更后,通过长链接通知客户端服务发生变化,客户端再去拉取 1、服务端配置发生变更后,通过长链接通知客户端服务发生变化,客户端再去拉取

16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 16、配置中心的技术选型 功能点 Spring Cloud Config

为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置 为不同服务创建不同的Spring上下文,每个服务都对应一个spring上下文,并且以key-value形式存放到 Map中key对应服务名称, value对应服务的上下文,我们获取应用的配置时候,就通过服务名称获取对 应的上下文,然后从上下文中获取对应的配置

JAVA 精髓面试题 · Nacos 配置中心与对比
http://www.clxhxhhr.top/posts/1563/
作者
clxstart
发布于
2026-09-18
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。