美文网首页微服务解决方案
服务发现之跨机房高可用(一)

服务发现之跨机房高可用(一)

作者: 黄云斌huangyunbin | 来源:发表于2019-01-17 11:32 被阅读174次

    基本原则是:

    1 每个机房负责自己的服务注册
    2 拉取其他机房的服务注册信息

    image.png

    sync具体怎么同步数据呢:

    image.png

    1 全量同步:
    每隔半个小时,全量同步一次对方机房数据
    2 增量同步:
    每个机房的数据都有个机房标示,都有最大的版本号,每秒请求对方机房,看同步的最大版本号是否一样,如果不一样,获取差异的版本号,同步这些版本号对应的数据。
    3 如果一段时间sync和对应机房连不通的时候,删除这个机房的所有数据

    注意点:

    1 获取服务实例列表的时候,从discovery和sync合并数据返回

    方案优点:

    1 简单通用,不管你的单机房的实现是redis还是raft,都是透明的。

    为什么用拉的方式,而不是用推的方式?

    拉的方式更加可控,也可以保证数据的一致性。
    推的方式,在失败或者超时的情况下,很难做重试策略。
    机房连不通的情况下,要去掉机房所有的数据,这个逻辑和拉方式是比较友好的。

    相关文章

      网友评论

        本文标题:服务发现之跨机房高可用(一)

        本文链接:https://www.haomeiwen.com/subject/htmmdqtx.html