• 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    # 多久没发送,就认为你宕机了
    
    • 1
    • 2
    • 3
    • 4

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

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

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

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

    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理论中,我们关注的是最终一致性。需要研究的也就是最终一致性。

  • 相关阅读:
    27岁想转行IT,还来的及吗?
    论文解读(PairNorm)《PairNorm: Tackling Oversmoothing in GNNs》
    thingsboard3.4版本之OTA升级
    Linux定时任务
    [附源码]计算机毕业设计JAVAjsp基于web前端的线上书城系统
    Vim简洁教程
    算法总结--搜索
    Java - 对象内存计算以及String类型的相关注意事项
    【Python】AppUI自动化—appium自动化开发环境部署、APP测试案例(17)上
    太赞了!Python 开发神器Jupyter竟然还有可视化debug功能
  • 原文地址:https://blog.csdn.net/yc_Cabbage/article/details/126394625