微服务·入门·贰——注册中心nacos、eureka

文章目录

  • 1. 微服务问题解决·服务治理问题
    • 1.1 问题抛出
    • 1.2 解决方法
  • 2 Eureka注册中心
    • 2.1 Eureka解决的问题
    • 2.2 Eureka的结构和作用
      • 2.2.1 Eureka的作用
      • 2.2.2 order-service如何得知user-service实例地址 ?
      • 2.2.3 order-service如何从多个user-service实例中选择具体实例 ?
      • 2.2.4 order-service如何得知某个user-service实例是否健康 ?是否宕机 ?

1. 微服务问题解决·服务治理问题

1.1 问题抛出

问题抛出:假如我们服务提供者user-service部署到多个服务器:

  • 在order-service发起远程调用时,如何得到user-service实例的IP和端口
  • 当user-service实例进行了集群搭建,order-service调用时如何选择
  • order-service如何得知某个user-service实例是否依然健康,其是否发生宕机

1.2 解决方法

组件 说明
Eureka
Nacos

2 Eureka注册中心

2.1 Eureka解决的问题

问题回顾:假如我们服务提供者user-service部署到多个服务器:

  • 在order-service发起远程调用时,如何得到user-service实例的IP和端口
  • 当user-service实例进行了集群搭建,order-service调用时如何选择
  • order-service如何得知某个user-service实例是否依然健康,其是否发生宕机
    微服务·入门·贰——注册中心nacos、eureka_第1张图片

2.2 Eureka的结构和作用

2.2.1 Eureka的作用

微服务·入门·贰——注册中心nacos、eureka_第2张图片

2.2.2 order-service如何得知user-service实例地址 ?

流程如下:
① 服务注册:user-service启动后,将自己的信息注册到eureka-service(Eureka服务端)。
② eureka-service保存服务名称服务实例IP地址的映射关系。
③ 服务发现、服务拉取:order-service根据服务名称,拉取(user-service)实例地址列表。

2.2.3 order-service如何从多个user-service实例中选择具体实例 ?

流程如下:

  • ① order-service从实例列表中利用负载均衡算法选择一个实例地址。
  • ② 向该实例地址发起远程调用

2.2.4 order-service如何得知某个user-service实例是否健康 ?是否宕机 ?

流程如下:

  • 心跳检测机制(ping - pong):user-service会每隔一段时间(默认30秒)向eureka-service发送请求,报告自己状态。
  • ② 当超过一定时间没有发送心跳时,eureka-service会认为微服务实例故障,将该服务从服务列表中剔除
  • ③ order-service拉取服务时,实现将故障实例排除

你可能感兴趣的:(分布式·微服务,eureka,微服务,spring,cloud)