我对分布式系统的概念完全陌生。如果问题应该改写,请告诉我。
我正在尝试制作一个包含10个客户端和一个服务器的分布式系统。服务器端有一个队列,客户端可以一次访问一个队列。那么可以使用什么样的锁定机制来避免虚假数据呢?信号量在这种情况下是否可行?如果可能的话,请提供参考,以便对此有更深入的了解。
答案 0 :(得分:1)
服务器上的信号量是可行的,确实是可行的方法。在Debian等GNU / Linux系统上,请参阅man 7 sem_overview
和man 1 lockfile
。
最简单的方法可能是让服务器一次只能为一个客户端提供服务,拒绝来自其他客户端的所有请求。被拒绝的客户等待随机(不明确)的时间长度,然后再次尝试。
另一种方法可以是让服务器队列请求,但这更复杂(可能仍然涉及拒绝某些请求)。