常见问题
1.注册中心作用?
1.服务注册 各个服务器向注册中心 注册自己信息
2.服务发现 客户端向注册中心查询特定服务的注册信息
3.负载均衡 一个服务节点布置多台, 注册中心可以根据配置给客户端发送不同的节点, 达到负载均衡作用
4.故障恢复 检测服务的状态
5.服务治理 进行服务的配置管理、动态扩缩容、服务路由、灰度发布等操作
2.注册中心的选取?
文章链接
https://juejin.cn/post/7068065361312088095?searchId=202408151003333398BB9D8F35B4E22900
3.为什么需要注册中心?
没有注册中心的话, a服务调用b服务 需要写死ip, 当多个服务时, 这样不好管理
4.为什么需要配置中心?
方便分布式下 管理 多台服务信息
Nacos
面试题: https://www.51cto.com/article/754170.html
注册与发现 配置中心
1.配置中心的原理
说白了就是一句话:配置信息的 CRUD。
- 配置信息存储:Nacos 默认使用内嵌数据库 Derby 来存储配置信息,还可以采用 MySQL 等关系型数据库。
- 注册配置信息:服务启动时,Nacos Client 会向 Nacos Server 注册自己的配置信息,这个注册过程就是把配置信息写入存储,并生成版本号。
- 获取配置信息:服务运行期间,Nacos Client 通过 API 从 Nacos Server 获取配置信息。Server 根据键查找对应的配置信息,并返回给 Client。
- 监听配置变化:Nacos Client 可以通过注册监听器的方式,实现对配置信息的监听。当配置信息发生变化时,Nacos Server 会通知已注册的监听器,并触发相应的回调方法。
2.Nacos配置中心长轮询机制?
客户端定时向服务端发起请求,检查配置信息是否发生变更。如果没有变更,服务端会"hold"住这个请求,即暂时不返回结果,直到配置发生变化或达到一定的超时时间再返回
通过长轮询的方式,Nacos 客户端能够实时感知配置的变化,并及时获取最新的配置信息。同时,这种方式也降低了服务端的压力,避免了大量的长连接占用内存资源。
补充:
长连接是一种网络连接方式,其中客户端和服务器之间的连接在多个请求之间保持打开状态,而不是在每次请求后关闭连接。与之相对的是短连接,每次请求都会建立一个新的连接,处理完请求后立即关闭。
优点: 持续性 实时性 减少开销
缺点:
如果长连接长时间不关闭,可能会占用服务器资源(如内存、文件描述符等)。
需要考虑心跳机制以检测和保持连接的有效性。
半长连接是介于长连接和短连接之间的一种网络连接方式。它保留了部分长连接的特性,同时也结合了短连接的优点。具体来说,半长连接的主要特征是:
半长连接的特点
- 有限的连接保持时间: 在半长连接中,客户端与服务器之间的连接保持一段时间,但并不无限期地保持打开。通常,这段时间足够处理多个请求或响应,之后连接会主动关闭。
- 资源节省: 半长连接在连接使用完成后会关闭,从而避免了长时间占用服务器资源的问题,这在长连接中可能会导致服务器资源被耗尽。
- 效率提高: 通过保持连接一段时间,减少了频繁创建和销毁连接的开销,与短连接相比,提高了通信效率。
- 心跳机制: 为了保持连接的有效性,半长连接通常会使用心跳机制来检测连接的状态,并在连接闲置一段时间后主动关闭。
半长连接主要应用于以下场景:
- HTTP/1.1: 默认使用的"Keep-Alive"模式可以看作是一种半长连接机制。浏览器与服务器在一个连接上可以发送多个请求,但连接会在一段时间内关闭。
- 数据库连接: 某些应用中,客户端与数据库的连接可能在一段时间内保持活跃,处理完一个或多个查询后再关闭。
- 消息队列: 某些消息队列系统中,客户端与服务器之间的连接可能会在处理完一定数量的消息后关闭,而不是一直保持连接。