【发布时间】:2013-11-26 04:24:45
【问题描述】:
我正在用 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() 的结果吗?如果可以,我可以从一堆订阅者节点中聚合该结果吗?
P.S. 可能是我看错了方向,应该使用其他沟通技巧吗?
【问题讨论】:
标签: python rpc zeromq distributed-computing publish-subscribe