目录
一、什么是Eureka
Eureka是Netflix开发的服务发现组件,是一个基于REST的服务,主要用于在AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。在Spring Cloud微服务架构中,Eureka通常用作注册中心。Eureka采用了C-S(客户端/服务端)的设计架构,由两个组件组成:Eureka服务端和Eureka客户端。 服务提供者(生产者)向注册中心注册服务,消费者向注册中心拉取服务列表(所有生产者列表),并通过负载均衡来获取其中的一个服务,这样可以均衡服务器列表上的服务。 Eureka客户端是一个Java客户端,用于和服务端进行交互,同时客户端也是一个内置的默认使用轮询负载均衡算法的负载均衡器。 在应用启动后,会向Eureka Server发送心跳(默认30秒)。
二、Eureka服务注册
Eureka服务注册是指将一个微服务注册到Eureka Server上,以便其他服务能够调用该服务。在Spring Cloud微服务架构中,服务提供者启动时会向Eureka注册中心注册自己提供的服务,服务消费者在启动时会向Eureka注册中心订阅自己所需的服务。Eureka Server提供服务注册功能,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
三、Eureka服务发现
Eureka服务发现是指Eureka Server将服务注册表中的信息同步到各个节点,以便服务消费者能够调用服务。在Spring Cloud微服务架构中,服务消费者通过Eureka Client进行服务发现,获取到服务注册表中的信息后,就可以直接调用服务提供者的服务了。Eureka Server采用基于DNS的服务发现方式,通过将服务注册表信息写入到DNS中,以便服务消费者能够通过解析DNS获取到服务提供者的地址信息。同时,Eureka还提供了基于HTTP的服务发现方式,通过HTTP请求获取服务注册表信息。
四、服务注册和发现的区别和联系
服务注册和发现是微服务架构中的重要概念,它们之间有明显的区别和联系。
服务注册是指将服务提供者的信息存储到服务注册表中,以便其他服务或客户端能够发现和调用这些服务。服务注册主要关注的是服务的元数据信息,例如服务的名称、IP地址、端口号等。
服务发现是指客户端或服务通过查询服务注册表来获取服务提供者的信息,从而建立连接并调用服务。服务发现主要关注的是如何获取服务提供者的地址信息,以便客户端能够建立连接并调用服务。
服务注册和发现之间存在密切的联系。在微服务架构中,服务提供者需要在服务注册表中注册自己的信息,以便其他服务或客户端能够发现和调用这些服务。同时,客户端或服务也需要通过查询服务注册表来获取服务提供者的信息,从而建立连接并调用服务。因此,服务注册和发现是相互依存的,共同构成了微服务架构中的服务发现与调用机制。
总的来说,服务注册和发现是微服务架构中重要的概念,它们之间存在明显的区别和联系。通过合理的服务注册和发现机制,可以实现微服务架构中的动态服务发现与调用,提高服务的可用性和可扩展性。