把Eureka完整讲明白不难,需要的仅仅是一份耐心!

java知识里有很多重要的知识点,而Eureka就是其中的一个,为了帮助同学们彻底掌握Eureka,我推荐大家去网上找一些相关的视频教程,看看里面的老师是怎么讲的。

专为初学者而著,总播放量超亿的java教程:Java300集零基础适合初学者视频教程

首先我们来了解下,服务注册、服务发现和服务注册中心的之间的关系。

举个形象的例子,三者之间的关系就好像是供货商,顾客和商店。

首先各地的供货商会将各种商品提供给商店,然后顾客需要商品的时候会去商店购买。

注册中心就好比是这个商店,供货商的动作就是服务注册,商品就是注册的服务。

当部署的服务启动后,会注册到注册中心,消费者需要什么样的服务,就自己去注册中心拉取。

那么到底什么是服务注册,为什么要将服务注册到注册中心呢?

服务注册指的是服务在启动时将服务的信息注册到注册中心中,由注册中心统一对所有的注册的服务进行管理。

现在我们想想,假如你是消费者,你需要买一个商品,你可以去商店,也可以直接去供货商。

但是如果今天你要买很多商品,而且我们并不知道每个商品对应的供应商的地址,那么你就得挨家挨户的去跑供货商购买商品。

是不是就很麻烦了,倘若此时有一家商店,汇总了多家供货商的商品,那你是不是只需要去这一家商店就能购买到你需要的所有的商品了呢?

这样是不是就方便了。

在我们现实开发中,比如我们需要获取用户信息的时候,而此时,我们的用户服务只部署了一个节点,那我们就可以使用IP+端口的形式访问服务。

当此时我们的服务部署了10个节点后,我们可以通过域名访问,通过nginx转发到某一个节点上,访问该节点的服务。

使用过nginx的小伙伴们都知道,每当我们需要新增一个节点的时候,我们就需要去修改nginx的配置文件,一旦服务部署的节点过多,频繁修改配置文件就变成了一件极其麻烦的事情。

这个时候,我们的注册中心,就应该粉墨登场了。

注册中心一登场,我们就尽管部署服务节点,部署完成后,服务启动,服务的信息就会被注册到注册中心,我们就不需要担心是不是又要去修改配置文件了。

什么是服务发现?

服务发现有两种模式:一种是客户端发现模式,一种是服务端发现模式。Eureka采用的是客户端发现模式。

客户端发现模式就好比我是一个土豪顾客,我去了商店,我把所有的商品都买回家,需要的时候在这些商品里面寻找。

因为我是土豪,所以我当然不能忍受商店里有新品上架,而我却没有,所以我每隔一段时间就会商店增量获取最新的商品。

这就是Eureka中的Fetch Registry,抓取注册信息。

Eureka Client 从 Eureka Server 获取注册表信息并在本地缓存。

这里我们注意一下,Eureka Client并不是直接去服务注册表中获取数据,而是从ReadOnly缓存中获取数据。

并且会通过在上一个获取周期和当前获取周期之间获取增量更新,这些信息会定期更新(每30秒更新一次)。

获取的时候可能返回相同的实例。Eureka Client会自动处理重复信息。

因为我的土豪行为,我已经被商店老板记录在它的VVIP名单上了。可惜天有不测风云,我破产了,我再也不能这么土豪了,没办法,我告诉了老板我破产了,老板听了我的话,想都没想,直接从他的VVIP名单上将我的名字给剔除了,社会就是这么现实。

这就是Eureka中的Cancel,取消。

每一个微服务节点关闭时,Eureka Client会向Eureka Server发送一个取消请求。

Eureka Server收到你的取消请求后,就会将你从服务注册表中给剔除。

商店老板是个傲娇的人,她制定了一个规则,如果你是她VVIP名单上的人,你必须每隔一段时间就要去商店采购商品。

一旦你在一段时间内没有来采购,她就觉得你已经没有购买能力,不适合在她的VVIP名单上存在了。

她就会狠心的将你从她的VVIP名单上将我的名字给剔除了。

这就是Eureka中的Renew(更新 / 续借)

Eureka Client 内部具备一个内置的负载均衡器,它使用轮训(round-robin)负载算法。

在服务启动后,每隔一定周期(默认30秒)向Eureka Server发送心跳。

如果Eureka Server在多个心跳周期内(默认90秒)没有收到Eureka Client发送过来的心跳,Eureka Server将会在服务注册表中将该节点剔除。

当然了,服务发现去注册中心拉取的是服务的信息,然后需要从服务信息中获取到服务部署的节点信息,然后通过域名地址访问到该节点的服务。

就好像一家商店,因为空间太小,只是存放了一些商品的微缩模型,模型上写着该商品所属的供货商地址,我们去商店拿到该模型后,看到供货商的地址,然后我们就可以直接去供货商那儿直接购买商品了。

什么是注册中心,注册中心的作用?

注册中心就是一个管理器,各个服务提供者将服务注册到注册中心,有注册中心进行统一的存储和管理。

注册中心同时还有着判断服务是否可用,对于不可用的服务进行剔除的功能。

至于如何判断服务的可用性和如何剔除不可用的服务,后续会有详细的讲解。

什么是 Eureka,有什么作用?

Eureka采用CS架构,它分为两大组件。

一个是Eurek

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值