zoukankan      html  css  js  c++  java
  • Eureka与Zk

    一、先说说CAP

      C(一致性)、A(高可用)、P(分区容忍)

      1.  一致性

        读操作获取到最新的写结果

      2. 高可用

        非故障节点在用户可接受的时间内返回可以接受的结果(不接受超时或错误)

      3. 分区容错

        部分服务可以不可用,但系统必须正常对外提供服务

      三者不可得兼,但分布式系统必须保证分区容错P,所以只能是CP或者AP

    二、zk(CP)

      zk保证了数据一致性,意味着丢失了可用性。

      线上的机器网络不稳定是常有的事,master在宕机后,zk将花很长的时间(30s~120s)

    用在重新选举上,并且在选举期间,zk集群不可用。

      2n+1台server,只要有n+1台就可以使用。也就是说,少于一半集群就无效了

    三、Eureka(AP)

      Eureka集群的各个节点都是平等的,通过长连接来维持心跳。

      几个节点挂掉后,不会影响正常的节点。客户端发现节点连接失败,会自动切换到其他

    正常节点,只要集群中有一个节点还在,就能保证服务可用(可用性),只不过数据可能不

    是最新的(不保证一致性)。此外,Eureka还提供了自我保护机制,如果在15分钟内超过85%

    的节点没有心跳,Eureka会认为客户端与注册中心出现了网络故障,此时会出现以下几种情况:

      1. 不会注册列表中移除因为长时间没有心跳而过期的服务

      2. 依然会接受新的注册请求,只不过不会同步到其他节点

      3. 网络恢复后,当前实例新的注册信息将同步到其他节点

      

    每一步脚印都要扎得深一点!
  • 相关阅读:
    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
    WCF快速上手(二)
    Oracle递归查询
    100多行代码实现6秒完成50万条多线程并发日志文件写入
    C#写日志工具类
    WPF定时刷新UI界面
    HttpUtil工具类
    WPF GridView的列宽度设置为按比例分配
    Visifire图表
    C# BackgroundWorker 的使用、封装
  • 原文地址:https://www.cnblogs.com/bloodthirsty/p/12696274.html
Copyright © 2011-2022 走看看