同步分布式系统中的动作

用户名

可以使用哪些技术/工具来实现具有以下要求的分布式系统:

  • 在给定的时间,系统可以处于以下三种状态之一:同步,计算或空闲。

  • 系统中的每个节点都可以接收两条指令:sync()和compute()。

  • sync()指令将立即发送到所有节点。收到sync()指令后,如果系统为IDLE,则每个节点应将其本地缓存与数据库同步,并且系统状态更改为SYNCING。当所有节点完成同步后,系统状态将更改为IDLE。万一节点发生故障,所有活动节点完成同步后,系统状态仍应更改为IDLE。

  • 收到compute()指令后,如果系统未在同步,则节点将运行一些计算,并且系统状态应更改为COMPUTING。当计算完成时,或在发生节点故障的情况下,如果没有其他计算在进行中,则状态应更改为“空闲”。

尼彭·塔卢达(Nipun Talukdar)

Zookeeper将是同步动作的好选择。假设采用以下方法。有一个/ sync znode,每次需要触发同步时,该znode都会使用当前时间戳或一些新数据进行更新。基本上,主节点会更新/ sync节点的值以触发工作节点上的操作。

工作节点将监视/ sync znode上的数据更改。因此,每次主节点更新/同步时,工作人员都会收到通知,并更新本地缓存。

同样,工作程序节点在/ workers znode下注册自己(通过在/ workers下创建带有一些uuid的临时znode)。这些节点将是短暂的,因此,如果工作节点/进程死亡,则对应的短暂节点将消失。工人在/ workers znode下放置了一个监视孩子的手表,因此当新工人出现或任何现有工人消失时,他们会得到通知。此外,他们还监视/ workers下所有临时节点上的数据更改。

现在一切正常:

主服务器使用当前时间戳更新/ sync,以在工作节点上触发同步。所有工作程序都会收到有关/ sync节点中数据更改的通知。他们获取/ sync节点的修改后的数据。工作人员从数据库同步其缓存。工作程序在/ workers节点下更新其相应的znode。例如,标识为4dc1efd2-01c8-11e5-bee1-08002791d032的工作人员将更新znode / workers / 4dc1efd2-01c8-11e5-bee1-08002791d032。放置在工作程序特定的znode上的数据是“ synced_at_timestamp”(例如,synced_at_1432451046000)。只要任何工作程序更新其znode,就会通知所有其他工作程序。所有工作程序都会继续检查/ workers下所有znode上的当前数据。当/ workers下的所有worker znode具有相同的synced_at_timestamp数据时,它们将切换到IDLE状态。

可能还有许多其他可能的方法。如果您熟悉内存缓存,Redis,Hazelcast等,也可以使用它们来实现这样的系统。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同步分布式系统中的动作

来自分类Dev

锁定分布式系统中的文件

来自分类Dev

分布式系统中的投票协议

来自分类Dev

分布式系统中的IP地址

来自分类Dev

Hadoop分布式文件系统与分布式缓存

来自分类Dev

在分布式系统中传递消息的简单方法

来自分类Dev

大型分布式系统中ObjectId与UUID的碰撞概率

来自分类Dev

分布式系统中的CRDT是什么?

来自分类Dev

分布式系统中的大使概念是什么?

来自分类Dev

在分布式系统中安排时间指定的任务

来自分类Dev

在分布式阵列系统中查找缺失的数字

来自分类Dev

OpenBSD中是否有任何分布式文件系统?

来自分类Dev

分布式系统中的大使概念是什么?

来自分类Dev

Spring Cloud Sleuth - 在分布式系统中禁用采样

来自分类Dev

服务器之间的数据同步是否算作分布式系统?

来自分类Dev

在现实世界的分布式系统中如何实现分布式快照算法(如Chandy Lamport)?

来自分类Dev

如何将scikit-learn仿真器结果留在分布式分布式系统中?

来自分类Dev

在现实世界的分布式系统中如何实现分布式快照算法(如Chandy Lamport)?

来自分类Dev

如何创建分布式文件系统

来自分类Dev

带分布式系统的CAP

来自分类Dev

在分布式系统上编译并运行

来自分类Dev

Berkeley算法-分布式系统

来自分类Dev

Umbraco内容同步问题-刷新分布式列表中的节点时出错

来自分类Dev

在Cassandra中,同步分布式写入如何保持一致性?

来自分类Dev

Apache Drill嵌入式和分布式系统

来自分类Dev

Apache Drill嵌入式和分布式系统

来自分类Dev

内存缓存VS。分布式系统中的集中式缓存

来自分类Dev

CoreOS和HDFS-在Linux容器/ Docker中运行分布式文件系统

来自分类Dev

分布式系统中如何维护套接字或通信通道

Related 相关文章

  1. 1

    同步分布式系统中的动作

  2. 2

    锁定分布式系统中的文件

  3. 3

    分布式系统中的投票协议

  4. 4

    分布式系统中的IP地址

  5. 5

    Hadoop分布式文件系统与分布式缓存

  6. 6

    在分布式系统中传递消息的简单方法

  7. 7

    大型分布式系统中ObjectId与UUID的碰撞概率

  8. 8

    分布式系统中的CRDT是什么?

  9. 9

    分布式系统中的大使概念是什么?

  10. 10

    在分布式系统中安排时间指定的任务

  11. 11

    在分布式阵列系统中查找缺失的数字

  12. 12

    OpenBSD中是否有任何分布式文件系统?

  13. 13

    分布式系统中的大使概念是什么?

  14. 14

    Spring Cloud Sleuth - 在分布式系统中禁用采样

  15. 15

    服务器之间的数据同步是否算作分布式系统?

  16. 16

    在现实世界的分布式系统中如何实现分布式快照算法(如Chandy Lamport)?

  17. 17

    如何将scikit-learn仿真器结果留在分布式分布式系统中?

  18. 18

    在现实世界的分布式系统中如何实现分布式快照算法(如Chandy Lamport)?

  19. 19

    如何创建分布式文件系统

  20. 20

    带分布式系统的CAP

  21. 21

    在分布式系统上编译并运行

  22. 22

    Berkeley算法-分布式系统

  23. 23

    Umbraco内容同步问题-刷新分布式列表中的节点时出错

  24. 24

    在Cassandra中,同步分布式写入如何保持一致性?

  25. 25

    Apache Drill嵌入式和分布式系统

  26. 26

    Apache Drill嵌入式和分布式系统

  27. 27

    内存缓存VS。分布式系统中的集中式缓存

  28. 28

    CoreOS和HDFS-在Linux容器/ Docker中运行分布式文件系统

  29. 29

    分布式系统中如何维护套接字或通信通道

热门标签

归档