2、Eureka的细节

EurekaClient启 ,EurekaSever就会存储上EurekaClient的注册信息。
当EurekaClient调用服务时,本地没有注册信息的缓存时,去EurekaServer中去获取注册信息。
EurekaClient会通过心跳的方式去和EurekaServer进行连接。(默认30sEurekaClient会发送一次心跳请求,如果超过了90s还没有发送心跳信息的话,EurekaServer就认为你宕机了,将当前EurekaClient从注册表中移除)

eureka:
  instance:
    lease-renewal-interval-in-seconds: 30      #心跳的间隔
    lease-expiration-duration-in-seconds: 90    # 多久没发送,就认为你宕机了

EurekaClient会每隔30s去EurekaServer中去更新本地的注册表

eureka:
  client:
    registry-fetch-interval-seconds: 30 # 每隔多久去更新一下本地的注册表缓存信息

Eureka的自我保护机制,统计15分钟内,如果一个服务的心跳发送比例低于85%,EurekaServer就会开启自我保护机制

  • 不会从EurekaServer中去移除长时间没有收到心跳的服务。
  • EurekaServer还是可以正常提供服务的。
  • 网络比较稳定时,EurekaServer才会开始将自己的信息被其他节点同步过去
eureka:
  server:
    enable-self-preservation: true  # 开启自我保护机制

CAP定理,C - 一致性,A-可用性,P-分区容错性,这三个特性在分布式环境下,只能满足2个,而且分区容错性在分布式环境下,是必须要满足的,只能在AC之间进行权衡。
如果选择CP,保证了一致性,可能会造成你系统在一定时间内是不可用的,如果你同步数据的时间比较长,造成的损失大。
Eureka就是一个AP的效果,高可用的集群,Eureka集群是无中心,Eureka即便宕机几个也不会影响系统的使用,不需要重新的去推举一个master,也会导致一定时间内数据是不一致。

4、BASE理论

BASE理论是对CAP的扩充,在强一致性和高可用性无法同时满足的情况下,寻求一种中间解决方案。其中就有最终一致性的表述。
BASE名称由来:

  • BA: Basic Availability基本可用性;
  • S: Soft state柔性状态;
  • E: Eventual consistency最终一致性;

4.1、基本可用性( Basic Availability)

也就是允许有一定的异常。比如第一次刷出现网络异常,再次刷新就好了。保持基本可用就行。到底允许多大的异常占比,就看用户的接受度了。

4.2、柔性状态(Soft state)

柔性状态,或者软状态,也就是一种中间状态;其实就是在无法做到强一致性的情况下,在数据还没有同步之前,允许存在的一个状态。

4.3、最终一致性(Eventual consistency)

也就是经过一段时间之后,达成一致。这里的一段时间可以是几秒、也可能是几分钟、甚至几小时。(此过程是异步进行的)

  • 读己之写一致性

自己能马上读取到自己写入的内容。比如博客,提交之后,自己马上可以看到,其他人可能要等一会才能看到。

  • 3、因果一致性

因果一致性,也就是一种逻辑顺序上的一致性。比如先有问题才有回答。因为一致性不是很及时、或者存在地区差异导致数据同步差异,例如:北京网友提问,上海网友看到了并回答了问题。因为某些原因,上海网友的回答快。读同步到了南京地区,但北京的问题还没有同步到南京。这时就保证先有问题才能看到回答。问题没有同步、回答同步了,逻辑上也不能只显示回答,而没有问题。这时就要进行因果一致性。
在一致性研究上,还出现过很多类似的一致性名词,类似:Sequential 和 Linearizability

4.4、总结

BASE理论是CAP的实践指导理论。因为对于系统来说,最好就是同时满足CAP,但是强CAP满足不了,我们就折中选择弱CAP,也就是BASE理论。
在BASE理论中,我们关注的是最终一致性。需要研究的也就是最终一致性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值