java高级培训-Spring eureka的应用

Eureka是Netflix开发的一个服务发现框架,它是基于REST的服务,主要用于定位在AWS(AmazonWebServices)域中运行的中间层服务,以实现负载平衡和中间层服务故障转移。SpringCloud将其集成到自己的子项目SpringCloudNetflix中,以实现SpringCloud的服务发现功能。

    Eureka是Netflix开发的一个服务发现框架,它是基于REST的服务,主要用于定位在AWS(AmazonWebServices)域中运行的中间层服务,以实现负载平衡和中间层服务故障转移。SpringCloud将其集成到自己的子项目SpringCloudNetflix中,以实现SpringCloud的服务发现功能。


    Eureka的服务发现包含两大组件:服务端发现组件(EurekaServer)和客户端发现组件(EurekaClient)。服务端发现组件也被称之为服务注册中心,主要提供了服务的注册功能,而客户端发现组件主要用于处理服务的注册与发现。Eureka的服务发现机制如图所示。


   java架构师培训


    从上图中可以看出,当通过注释等将客户端服务嵌入程序代码中时,客户端发现组件将在注册表中注册其自己的服务,并定期发送心跳以更新服务(默认时间为30秒,如果连续3次(如果心跳无法发现服务,则Eureka将从服务注册表中删除服务节点)。同时,客户端发现组件还将从服务器查询当前注册的服务信息,并将其本地缓存。即使EurekaServer出现问题,客户端组件也可以通过缓存中的信息来调用服务节点的服务。将通过注册表的注册信息在“休息”模式下调用各种服务,并且可以直接通过服务名称进行调用。


    Eureka的服务发现机制包含了3个角色:服务注册中心、服务提供者和服务消费者。


    服务注册中心即EurekaServer,而服务提供者和服务消费者是EurekaClient。这里的服务提供者是指提供服务的应用,可以是SpringBoot应用,也可以是其他技术平台且遵循Eureka通信机制的应用,应用在运行时会自动地将自己提供的服务注册到EurekaServer以供其他应用发现。


    服务消费者就是需要服务的应用,该服务在运行时会从服务注册中心获取服务列表,然后通过服务列表知道去何处调用其他服务。服务消费者会与服务注册中心保持心跳连接,一旦服务提供者的地址发生变更时,注册中心会通知服务消费者。


    需要注意的是,Eureka服务提供者和服务消费者之间的角色是可以相互转换的,因为一个服务既可能是服务消费者,同时也可能是服务提供者。


  推荐阅读:java架构师培训:java最佳测试框架JBehave的基本介绍

  • 发表于 2021-03-26 21:09
  • 阅读 ( 20 )
  • 分类:技术干货

0 条评论

请先 登录 后评论
JAVA Q&A
JAVA Q&A

173 篇文章

作家榜 »

  1. JAVA Q&A 173 文章
  2. 江南 1 文章
  3. 伯乐 0 文章
  4. 孤存 0 文章
  5. q21164340 0 文章
  6. 赫敏12 0 文章
  7. 子牙 0 文章
  8. 赫敏 0 文章