170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?

Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,主要负责完成微服务架构中的服务治理功能

什么是服务治理?

服务治理是微服务架构中最为核心最为基础的模块,它主要用来实现各个微服务实例的自动化注册与发现。

为什么在微服务架构中,我们非常需要服务治理模块?

随着业务的复杂度越来越高以及微服务应用的数量不断增加,我们的静态配置就会越来越难以维护。并且面对不断发展的业务,我们的集群规模,服务的位置和服务的命名等都有可能发生变化,如果这种情况下还是通过手工维护,就极易发生错误或是命名冲突问题。同时,维护这类静态内容也将消耗大量人力。

什么是服务注册?

在于服务治理框架中,通常会构建一个服务注册中心,每个服务单元将自己的主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织服务清单,从而完成服务注册。

什么是服务发现?

服务调用方在调用服务提供方的接口时,并不知道服务实例的具体位置。因此服务调用方需要向服务注册中心咨询服务,并获取所有服务的实例清单,以实现对具体服务实例的访问,这就是我们后续将会介绍的客户端负载均衡。上述是一种简单的服务治理逻辑,以方便理解服务治理框架的基本运行思路。实际的框架为了性能等因素,不会采用每次都向服务注册中心获取服务的方式,并且不同的应用场景在缓存和服务剔除等机制上也会有一些不同的实现策略。

Spring Cloud Eureka,使用Netflix Eureka来实现服务的注册与发现,它包含了采用Java编写服务端组件客户端组件。

什么是Eureka服务端?

Eureka服务端,我们称为服务注册中心。如果Eureka以集群模式部署,当集群中有分片出现故障时,Eureka就转入自我保护模式。它允许在分片故障期间继续提供服务的发现与注册,当故障分片恢复运行时,集群中的其他分片会把它们的状态再次同步回来。

什么是Eureka客户端?

在运用程序运行期间,Eureka客户端向服务注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时它也能从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。

实例:搭建服务注册中心

(转载)史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

额外的笔记:

170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?

服务发现与消费

目前我们已经有了服务注册中心和服务提供者。下面我们尝试构建一个服务消费者,它主要完成服务的发现和服务的消费,其中服务发现的任务由Eureka的客户端完成,而服务消费的任务由Ribbon完成。

什么事Ribbon?

Ribbon是一个基于HTTP和TCP的客户端负载均衡器,它可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到负载均衡的作用。当Ribbon和Eureka联合使用时,Ribbon的服务实例清单RibbonServerList会被DiscoveryEnabledNIWSServerList重写,扩展成从Eureka注册中心中获取服务端列表。同时它会用NIWSDiscoveryPing来取代IPing,它将职责委托给Eureka来确定服务端是否已经启动。从上述可知Ribbon在Eureka服务发现的基础上,实现了一套对服务实例的选择策略,从而实现对服务的消费。

实例:在Eureka服务治理体系下如何实现服务的发现与消费?

(转载)史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

额外笔记:在控制台在不同端口启动多个服务

170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?
170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?