【Spring Cloud】Eureka实现微服务发布与调用

【学习背景】

在此之前,转载了一篇关于Spring Cloud的概述博文,《大话Spring Cloud》,其中关于Spring Cloud整个框架的结构和内容都总结的很详细。本篇博客将自己总结下微服务架构下服务管理中的注册中心Eureka。

【学习内容】

  1. 关于Eureka

Eureka提供基于REST的服务,在集群中主要用于服务管理。Eureka 提供了基于 Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架, 可以将业务组件注册到 Eureka 容器中, 进行集群部署, Eureka 提供的服务调用功能, 可以发布容器中的服务并进行调用。

  1. Eureka架构

一个简单的 Eureka 集群, 需要有一个 Eureka 服务器、 若干个服务提供者。 我们可以将业务组件注册到 Eureka 服务器中, 其他客户端组件可以向服务器获取服务并且进行远程调用。架构图如下:

在这里插入图片描述

上图中,有两个服务器,服务器支持集群部署,每个服务器也可以作为对方服务器的客户端进行相互注册和复制。上图中包含三个Eureka客户端,两个用于发布服务,一个用于服务调用,不论是服务器还是客户端,都可以部署多个实例。

  1. 服务器端

对于注册到服务器端的服务组件, Eureka 服务器并没有提供后台的存储, 这些注册的服务实例被保存在内存的注册中心, 它们通过心跳来保持其最新状态, 这些操作都可以在内存中完成。 客户端存在着相同的机制, 同样在内存中保存了注册表信息, 这样的机制提升了Eureka 组件的性能, 每次服务的请求都不必经过服务器端的注册中心。

  1. 服务提供者

作为 Eureka 客户端存在的服务提供者, 主要进行以下工作: 第一、 向服务器注册服务;第二、 发送心跳给服务器; 第三、 向服务器端获取注册列表。 当客户端注册到服务器时, 它将会提供一些关于它自己的信息给服务器端, 例如自己的主机、 端口、 健康检测连接等。

  1. 服务调用者

对于发布到 Eureka 服务器的服务, 使用调用者可对其进行服务查找与调用, 服务调用者也是作为客户端存在, 但其职责主要是发现与调用服务。 在实际情况中, 有可能出现本身既是服务提供者, 也是服务调用者的情况, 例如传统的企业应用三层架构中, 服务层会调用数据访问层的接口进行数据操作, 它本身也会提供服务给控制层使用。

【学习demo】

在学习过程中,自己也搭建了相关实例,基于Spring Boot 2.1版本,Spring Cloud 版本为:Greenwich.RC1,不同的版本,对应的依赖可能不同,所以在搭建的过程中,版本信息还是值得注意一下。

访问地址:https://github.com/huzhiting/spring-cloud

在后面的学习中也会继续更新实例代码。

【学习总结】

Spring Cloud 是现在很多公司首选的微服务架构之一,而我们公司只是单纯地用Spring Boot做了几个简单地单独应用,所以趁着假期,自己学习一下Spring Cloud相关知识,增加些知识储备。

猜你喜欢

转载自blog.csdn.net/u013034223/article/details/85015535