• 协调-协调架构原理


    协调架构原理简介

    Fourinone对分布式协调的实现,是通过建立一个domain/node两层结构的节点信息去完成,domain可以是分类或者包,node可以是具体属性,domain和node都是根据需求设计命名,比如可以将domain命名为“a.b.c...”表示一个树型类目。一个domain下可以有很多个node,每个node只指定一个domain,可以通过domain返回它下面所有的node。domain不需要单独建立,通常在建立node时,如果不存在domain会自动创建。如果domain下没有node了,该domain会自动删除。如果删除domain,该domain下面node也都会删除。每个node下可以存放一个值,可以是任意对象。所有的节点信息存放在ParkServer里,ParkServer提供协调者的功能。

    其他分布式进程可以通过ParkServer的用户接口ParkLocal,对节点进行增加、修改、删除、指定心跳、指定权限等操作,并且结合ParkServer提供同步备份、领导者选举、过期时间设置等功能,共同来实现众多分布式协调功能。

    我们举个例子,说明两个分布式应用完成协调功能的流程:

    1)分布式应用A通过ParkLocal在ParkServer上创建一个domain/node的节点,并且在节点里存放相应的value,这个节点以及它的value值代表分布式应用A的某种协调信息,它存放在ParkServer上用于向分布式应用B分享。

    2)分布式应用B通过ParkLocal操作ParkServer,对它上面的分布式应用A建立的这个domain/node节点进行监听,如果节点value发生变化,那么分布式应用B可以获取到这个value,并进行相应的业务处理,这样便将各自独立的分布式应用A和B协调了起来。

    3)由于ParkServer保存着用于协调的节点和信息,为了防止ParkServer宕机导致整体故障,ParkServer配置为一主多备的关系,互相同步信息,在故障时可以进行领导者选举,切换到备用ParkServer上继续提供协调服务。

    分布式协调的场景还有很多,例如:

    1)分布式配置,多个机器的应用公用一个配置信息,并且挂掉能够通过领导者选举进行恢复;

    2)分布式锁,多个机器竞争一个锁,当某个机器释放锁或者挂掉,其他机器可以竞争到锁,继续执行任务;

    3)集群管理,集群内机器可以互相感知并进行领导者选举;

    4)多个节点,每个节点具有读写权限不一样的操作。

  • 相关阅读:
    C语言初学者代码中的常见错误与瑕疵(22)
    ANSI C (83)和87 ANSI C 这两个标准存在么?
    常见的认证
    python入门(一)
    Altium Designer重装后图标都变白板或都变一样的解决方法
    转:关于S参数的一些理解
    射频与微波测量之S参数
    驻波比
    PCB特征阻抗计算
    函数的形参(非引用形参、指针形参、引用形参)
  • 原文地址:https://www.cnblogs.com/muzinan110/p/11052174.html
Copyright © 2020-2023  润新知