面试题答案
一键面试- 基于DNS的服务发现:
- 工作原理:客户端通过向DNS服务器发送查询请求,根据服务的域名获取对应的IP地址。DNS服务器维护着域名与IP地址的映射关系。当客户端需要访问某个服务时,它将服务的域名作为查询参数发送给DNS服务器,DNS服务器查找并返回与该域名对应的IP地址。例如,当一个Java客户端想要连接名为“example-service.com”的服务时,它会向DNS服务器请求该域名的IP地址记录,DNS服务器返回对应的IP,客户端即可使用该IP连接到服务。
- 基于注册中心的服务发现(以Eureka为例):
- 工作原理:服务提供者启动时,会向注册中心(如Eureka Server)注册自己的服务信息,包括服务名称、IP地址、端口等。注册中心维护一个服务注册表,记录所有已注册的服务。服务消费者启动时,会从注册中心获取服务列表,缓存到本地。当服务消费者需要调用某个服务时,它会从本地缓存的服务列表中选择一个可用的服务实例进行调用。同时,注册中心会通过心跳机制定期检测服务提供者的健康状态,如果某个服务提供者长时间没有发送心跳,注册中心会将其从服务注册表中移除,以保证服务列表的有效性。