Euraka

Eurake的服务列表是基于ConcurrentHashMap实现,服务列表名位Key,对应的访问地址位Value;如果相同服务器复制了多个那么同一个Key则会对应多个Value。

在Eureka架构中微服务角色分为两类:

EurakeServer:服务端,注册中心

作用:记录服务信息、心跳监控

EurakeClient:客户端

Provider(服务提供者)

        每隔30s向EurakeService发送心跳

        注册自己的信息到EurakeService

Consumer(服务消费者):

        根据服务名从EurakeService拉取服务器列表

        基于服务列表做负载均衡,选中一个微服务发起远程调用
如果服务消费者需要注册中心里的服务提供者就会在注册中心将服务提供者拉去下来,通过@LoadBanlance注解里的IRule类去知道具体找哪个服务

Euraka中的一些机制

服务剔除:当服务提供者超过30s没有向注册中心提供心跳,注册中心会等待3次30s的等待,如果拍还没收到心跳续约,在没有开启自我保护机制的情况下就会被注册中心剔除

自我保护机制:生产者会每隔30s向EurekaService发送心跳,但在发送心跳的过程中会发生因网络问题造成数据丢包的可能从而导致EurakeService误删活着的服务提供者。但开启了自我保护机制EurakeService就不会剔除服务提供者,如果此服务真的挂掉也不会剔除

定时线程:定时线程是定时检查心跳的,如果有服务提供者没有进行心跳的续约此线程就会等待3次30s,如果还未收到心跳续约那么就会将该服务器进行服务剔除(前提是没有开启自我保护机制)

Eureka中的两级缓存

Read Write:服务提供者注册上来后会立刻同步给ReadWrite缓存中,ReadWrite有个定时线程,此线程会定时同步给  ReadOnly缓存中

ReadOnly:服务消费者拉取服务会从ReadOnly缓存中进行拉取,如果消费者直接对接服务列表,但服务列表为了安全会加锁,消费者拉取就会造成阻塞

两级缓存的目的是减少阻塞

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念兰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值