分布式系统是一个系统,其中组件位于不同的位置,这些不同的位置指的是联网的计算机,它们可以通过相互交换消息轻松地通信和协调它们的任务。这些组件可以相互通信,以完成一个共同的目标作为一项任务。有许多算法用于实现分布式计算,这些算法大致分为 2 类:基于令牌的算法和基于非令牌的算法。
分布式系统中基于令牌和非基于令牌的算法之间的区别:
编号 | 基于令牌的算法 | 非基于令牌的算法 |
---|---|---|
1 | 在基于令牌的算法中,一个唯一的令牌在分布式计算系统中的所有站点之间共享。 | 在基于非令牌的算法中,没有令牌,甚至没有共享令牌访问的概念。 |
2 | 如果站点拥有令牌,则允许站点进入计算机系统。 | 两个或多个连续的消息轮次在站点之间交换以确定哪个站点接下来将进入计算机系统。 |
3 | 基于令牌的算法使用序列对计算机系统的请求进行排序,并解决对系统的同时请求的冲突。 | 基于非令牌的算法使用时间戳(另一个概念)来对计算机系统的请求进行排序,并解决对系统的同时请求的冲突。 |
4 | 与非基于令牌的算法相比,基于令牌的算法产生的消息流量更少。 | 与基于令牌的算法相比,基于非令牌的算法产生更多的消息流量。 |
5 | 由于分布式系统中存在唯一令牌,它们没有死锁(即这里没有两个或多个进程在队列中等待实际上无法到来的消息)。 | 它们并非没有死锁问题,因为仅基于时间戳。 |
6 | 保证了请求完全按照发出的顺序执行。 | 没有执行顺序的保证。 |
7 | 基于令牌的算法更具可扩展性,因为它们可以使服务器不必存储会话状态,并且它们包含验证所需的所有必要信息。 | 非基于令牌的算法比基于令牌的算法的可扩展性更差,因为服务器不是从它的任务中解放出来的。 |
8 | 访问控制是非常细粒度的,因为这里的令牌角色、权限和资源可以很容易地为用户指定。 | 访问控制不是很好,因为没有可以为用户指定角色、权限和资源的令牌。 |
9 | 基于令牌的算法使认证非常容易。 | 非基于令牌的算法无法使身份验证变得容易。 |
10 | 基于令牌的算法示例有:(i) Singhal 的启发式算法; (ii) 基于 Raymonds 树的算法; (iii) Suzuki-Kasami 算法 | 非基于令牌的算法的示例有:(i) Lamport 算法;(ii) Ricart-Agarwala 算法; (iii) 前川算法 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/266956.html