我确实使用Node.js为某些服务创建了一个简单的API,并使用了现有的多个处理器。
所以,我确实使用了群集模块,但是通过日志注意到由于某些客户端问题,某些请求会重复,然后允许同时通过多个工作人员进行重复处理。
我考虑过实现Exclusive Locks模式,如下所示:
- Master正在侦听来自Workers,查看,创建或删除锁的消息。
- Master将锁存储在Master中定义的Object中(检查cluster.isMaster)。
- 接收用户请求的每个工作人员将与主人交谈,以检查是否存在针对不同工作人员ID的锁定。如果存在,它会以合适的错误消息结束请求。
- 每个工作人员都会向Master发送一个锁定请求,包括工作者ID和用户的唯一ID,因此它们都会被添加到Master中的Locks对象中。
- 一旦完成该过程,或者即使发生任何错误,也会清除锁定。
醇>
您如何看待这种独家锁定模式?