我正在用python设计一个简单的分布式数据库。我考虑用ZeroRPC
. 密钥查找由具有req/rep模式的 DHT 协议实现。但是,我还希望能够通过键的值进行分布式查找。例如,如果我请求具有特定值的键,我希望所有服务器在其本地存储中进行查找,然后将结果返回给请求者。我正在考虑用pub/sub来实现它的可能性,如下所示:
#node.py
import zerorpc
class Node:
def query(param):
#lookup code
return result # could be None or [], etc.
sub = zerorpc.Subscriber(Node())
sub.connect('tcp://127.0.0.1:9999')
sub.run()
#requester.py
import zerorpc
pub = zerorpc.Publisher()
pub.bind('tcp://127.0.0.1:9999')
result = pub.query('foo_query') # None
print result # None
问题是,我可以得到调用的结果吗pub.query()
?如果可以,我可以从一堆订阅者节点中聚合结果吗?
PS可能是我正在寻找错误的方向,应该使用其他一些沟通技巧吗?