微服务之Eureka服务的注册和发现

微服务框架中有三类角色,分别是注册中心、服务提供者、服务消费者,注册中心就是Eureka

Eureka是什么:

  1. Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功能了,微服务部署之后,一定要有服务注册和发现的能力,Eureka 就是担任这个角色的。Rest API与RPC是服务调用,eureka和zookeeper是服务注册与发现,rest中的服务注册和发现的功能是用eureka来实现的;dubbo 中服务注册和发现的功能是用 zookeeper 来实现的。
  2. Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。Eureka 主管服务注册与发现,在微服务中,有了这两者,只需要使用服务的标识符(在每个服务的yml文件中取得服务名称)就可以访问到服务,不需要修改服务调用的配置文件。
  3. 是Spring Cloud提供服务中心来管理服务信息,是Spring Cloud的子项目,Spring Cloud Eureka 是基于Spring Cloud Netflix 做了二次封装,实现了服务治理功能,提供EurekaServer、EurekaClient,服务端即是服务注册中心,客户端完成微服务向Eureka服务的注册和发现。
  4. Eureka遵循AP原则(高可用,分区容错性),因为使用了自我保护机制所以保证了高可用。

Eureka 采用了C-S的设计架构。包含两个组件:Eureka Server(提供注册服务)、 Eureka Client(JAVA客户端,负责发送心跳)

  1. Eureka Server 提供服务注册服务:Eureka Server 作为服务注册功能的服务器,它是服务注册中心。各个节点启动后,会在Eureka Server中进行注册,这样 Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  2. EurekaClient 是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)法的负载均衡器。在应用启动后,将会向 Eureka Server 发送心跳(默认周期为 30 秒)。如果 Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server 将会从服务注册表中把这个服务节点移除(默认 90 秒)。

运行原理:

服务提供者和消费者都注册到Eureka服务器上,浏览器访问消费者地址,消费者会通过Eureka服务器上服务提供者的名字,找到提供者的真实路径,进行调用。高可用时可以搭建几个Eureka服务器,互相注册,复制各自信息。

为什么需要注册中心:

要进行远程调用就需要知道服务端的ip和端口,而注册中心帮助我们管理这些服务端口和ip

Eureka三大角色

  1. Eureka Server 提供服务注册和发现
  2. Server Provider 服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到,提供服务给个别调用。
  3. Server Consumer 服务消费方从Eureka获取注册服务列表,从而能够消费服务,调用个别提供的服务。

注:往往大多数服务本身既是服务提供者,也是服务消费者。

Eureka的自我保护:

某时刻某一个微服务不可用了,Eureka不会立即清理,依旧会对微服务的信息进行保护。

构建集群版Eureka Server服务注册中心可以看我的另一个博客

https://blog.csdn.net/Afflatus_f/article/details/102708483

 

你可能感兴趣的:(Spring,Cloud,eureka)