Spring Cloud微服务注册与发现--04

	《Spring Cloud与Docker微服务架构实战》周立 --笔记

服务发现简介

前面我们知道硬编码提供者地址存在许多问题,在微服务架构中,服务发现组件可以解决这些问题,让服务消费者无需修改配置就可动态获取服务提供者网络信息。
提供这种能力,服务发现组件的架构图为:

服务发现组件,服务提供者,服务消费者三者之间的关系为:
(1) 所有微服务启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件存储这些信息。–服务注册,服务注册表
(2) 服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务发现者的接口。–服务发现
(3) 微服务与服务发现组件之间使用一定机制通信,服务发现组件若长时间无法与某微服务实例通信,则注销该实例。–服务检查
(4) 微服务网络地址发生变更时,会重新注册到服务发现组件。
Spring Cloud提供了多种服务发现组件支持,例如,Euraka,Consul,ZooKeeper。下面介绍服务发现组件Euraka。

Eureka原理

Eureka是基于REST的服务,包含Client和Server两部分,集成在Spring Cloud Netflix中,实现微服务注册与发现。

Region和Availability Zone

Region和Availability Zone都是AWS的概念,Region表示AWS中的地理位置,一个Region中有多个Availability Zone,各个Region之间隔离,如下图:

Spring Cloud中默认使用us-east-1这个Region,可将Availability Zone理解为机房,Region理解为跨机房的Eureka集群。 在此基础上,来看Eureka的原理,Eureka架构图为:

Application Service:相当于服务提供者
Application Client:相当于服务消费者
Make Remote Call:可理解为调用REST API的行为
us-east-1x:都是Zone,属于us-east-1这个Region。
Eureka Server:提供服务发现能力。
Eureka Client:用于简化与Eureka的交互。
微服务启动后,会周期地向Eureka Server发送心跳已续约“租期”;
如果Eureka Server在一定时间内未收到某个微服务实例的心跳,Eureka Server将注销该实例;
多个Eureka Server实例之间通过复制的方式实现服务注册表中数据的同步;
Eureka Client会缓存服务注册表中的信息:(1)微服务无需每次都请求Eureka Server,降低了Eureka的压力;(2)即使Eureka Server都宕掉,缓存服务注册表可以继续给微服务提供信息。

编写Eureka Server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值