我正在使用Curator框架Interprocess互斥锁创建分布式锁以保留一些资源。但是,我可以看到zookeeper每次获取锁定需要50-100毫秒,释放锁定需要20-40毫秒。 我的应用程序是写入密集的,必须在500毫秒内响应10-50 req /秒,我只能在获取和释放锁定时给予70-140毫秒。 1)我有什么方法可以改善这个吗?我的zookeeper服务器和客户端在同一台主机上。 我已经尝试过如行政指南中所述设置zookeeper服务器。 2)我应该使用其他一些框架/技术吗?我想知道Redis SETNX是更好的解决方案还是使用Chubby。
答案 0 :(得分:2)
Zookeeper主要设计为一致,其次是快速。一致性伴随着协调的成本。这将永远增加延迟。您可以做的是根据您的工作进行分片,只进行工人级锁定。这样可以避免额外的Zookeeper锁定成本,但会增加或删除工作人员时增加复杂性。