分别用Eureka、Nacos实现服务注册和服务发现小demo总结----2021-10-18

本文总结了使用Eureka和Nacos实现服务注册与服务发现的原理和区别。在Eureka中,服务实例启动后注册到Eureka Server,消费者通过服务名拉取实例并利用负载均衡进行远程调用。服务通过心跳保持健康检查。Nacos则增加了服务端主动检测和推送模式,支持更灵活的服务状态管理。Nacos还提供了命名空间和集群的概念,增强了服务隔离和实例管理。
摘要由CSDN通过智能技术生成

分别用Eureka、Nacos实现服务注册和服务发现小demo总结

一、远程调用

1、使用RestTemplate

  1. 在启动类中注册RestTemplate
  2. 实现远程调用

2、Eureka

问题1:消费者如何得知生产者实例地址?

获取地址信息的流程如下:

  • 生产者服务实例启动后,将自己的信息注册到eureka-server(Eureka服务端)。这个叫服务注册
  • eureka-server保存服务名称到服务实例地址列表的映射关系
  • 消费者根据服务名称,拉取实例地址列表。这个叫服务发现或服务拉取

问题2:消费者如何从多个生产者实例中选择具体的实例?

  • 消费者从实例列表中利用负载均衡算法选中一个实例地址
  • 向该实例地址发起远程调用

问题3:消费者如何得知某个生产者实例是否依然健康,是不是已经宕机?

-生产者会每隔一段时间(默认30秒)向eureka-server发起请求,报告自己状态,称为心跳

  • 当超过一定时间没有发送心跳时,eureka-server会认为微服务实例故障,将该实例从服务列表中剔除
  • 消费者拉取服务时,就能将故障实例排除了

3、Nacos

名词概念:
namespace:命名空间。作用是服务隔离,处在不同的namespace下的服务是无法访问的。

cluster:集群。Nacos将同一机房内的实例划分为一个集群。一个服务可以包含多个集群,每个集群下可以有多个实例。

- Nacos与eureka的共同点

  • 都支持服务注册和服务拉取
  • 都支持服务提供者心跳方式做健康检测

- Nacos与Eureka的区别

  • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
  • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
  • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
  • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值