我需要同步对在不同主机上运行的不同进程修改的共享资源的并发访问。我正在考虑通过在 sql 数据库中创建一个锁表来同步这一点,该表可以从可以访问数据库的服务中访问。所有进程将首先向服务请求锁,只有获得锁的进程才会继续并更改共享资源。进程将在计算后释放锁。锁表将保存当前持有锁的进程的主机、pid、锁创建时间等信息,以便在当前持有锁的进程意外死亡并且其他进程请求锁时清除锁。
我不倾向于基于 zookeeper 的解决方案,因为我的情况下的流量很小(一天内可能运行 2-5 个进程,因此并发访问的可能性已经很小),所以我不考虑维护单独的服务锁定,但通过在其数据库中添加一个附加表来扩展现有服务本身。
我想要关于这种方法的建议,或者是否有其他更简单的解决方案来解决这个问题。