• Eureka-server集群都挂了,微服务之间还能调通吗


    答案:可以!

     流程:

    1、Eureka 作为一个服务注册中心启动。
    2、Provider 和 Consumer 分别作为服务启动,并且注册到 Eureka 上面去,以 provider 为例,3、provider 注册时会告诉 eureka,我叫 provider,我的地址是 xx.xx.xx.xx,我的端口是 xx,我的 xx 是 xx,就是说,provider 会将自己的一些元数据信息告诉 eureka;同理,consumer 也是如此。
    接下来,consumer 要调用 provider 的接口,但是它不知道 provider 的地址是什么,他只知道要调用的服务叫 provider,于是 consumer 找到 eureka,从 eureka 上查询出来 provider 的具体地址和端口,这个具体的地址和端口,可能是一个,也可能是多个(集群化部署)。
    consumer 获取到 provider 的地址和端口之后,接下来就直接去调用 provider 了。
    从上面一个流程图中,大家可以看出来,一旦 consumer 获取到 provider 的具体地址,接下来的调用其实就没有 eureka 什么事了。

     原理:

    一、Eureka Server
    Eureka Server 主要对外提供了三个功能:

    服务注册,所有的服务都注册到 Eureka Server 上面来,这是 Eureka 基本功能。
    提供注册表,注册表就是所有注册上来服务的一个列表,Eureka 内部通过一个二层缓存机制来维护这个注册表。Eureka Client 在调用服务时,需要获取这个注册表,一般来说,这个注册表会缓存下来,如果缓存失效,则直接获取最新的注册表。
    同步状态,Eureka Client 通过注册、心跳等机制,和 Eureka Server 同步当前客户端的状态,以便 Eureka Client 能够及时感知到变化。
    二、 Eureka Client
    服务要注册到 Eureka 上面去,这种注册本身就是一个 HTTP 请求,但是自己手写注册过程的话太过于繁琐,Eureka Client 可以帮助我们简化注册过程。

    总结:Eureka Client 会自动拉取、更新以及缓存(俗称本地路由) Eureka Server 中的信息,这样,即使 Eureka Server 所有节点都宕机,Eureka Client 依然能够获取到想要调用服务的地址(前提是服务地址没有发生变化)。

  • 相关阅读:
    leetcode_27_最小栈
    TCP和UPD的区别
    【云原生】一文带你吃透FlexManager数据传入华为云IOT
    VirtualBox安装openEuler方案一
    影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入
    python的基础知识
    【毕业设计】垃圾邮件(短信)分类系统 - 机器学习
    java正则表达式用法总结
    mysql数据库insert、select、delete、update基本语法的使用
    vue工程化开发和脚手架
  • 原文地址:https://blog.csdn.net/wzj_3187/article/details/126122513