记 整理知识
Distributed Systems: Naming and Directory service | Snapshot Algorithm
Distributed Systems
Naming and Directory service
就是写个代码来匹配中间件或是资源。客户有需求就通过JNDI这样的接口(JNDI API)来联系name server, nameserver接到请求也通过JNDI(JNDI SPI)来找相应的资源。相关的名词有:Namespace(例如youtube.com),Context(一个包含name和object映射的集合,可以bind、unbind等),Naming Conventions(例如c://user/ vs c.user.andrew)
Snapshot Algorithm
简单来说,就是在不妨碍业务过程的条件下通过一个Marker消息来确认其他业务消息的先后,利用快照得到分布式系统的整体情况。
举个简单的例子:一桌打黑牌的人(近似赌博,有人在门口放哨),主人公A收到了外界传来的Marker消息(快速撤离),喵了一眼自己手里的牌并做了记录。然后向每个牌友发出Marker,声明在Marker之后打出的牌对手都不能再计算(可能有诈)。其他牌友也照做。这样,将所有牌友记录的牌加起来,黑桃、梅花、方块、红桃各自的总数是一定的。当然,收到一个牌友的Marker只是停止计算与这位特定牌友的输赢,没收到某位牌友的Marker就说明两人之间情况正常,赢的牌还是要算的。如果收到了所有牌友的Marker,就说明真的有问题了,得退出牌局,这一轮所做的记录就到此为止。