我实际上正在研究服务发现模式,但我不太明白它是如何工作的。
我阅读了一篇使用nodejs的名为etcd ( http://lukebond.ghost.io/service-discovery-with-etcd-and-node-js/)的库的文章,使用起来似乎很容易,比如只设置模式url lile /my/service。
然后我有几个问题:
在阅读了这篇文章之后,我试图了解动物园管理员是如何工作的。使用这个库并使用标准库( https://github.com/yfinkelstein/node-zookeeper ),我将面临一个问题:
谢谢大家提前
谢谢你提前
发布于 2016-03-02 00:31:38
这里是一篇很好的关于服务发现模式的文章。以下是一些基于标准模式的答案:
如何从另一个nodejs应用程序访问此服务?
像etcd这样的服务发现工具将为您需要的服务返回端点的list。参见示例这里
{
"action": "get",
"node": {
"key": "/",
"dir": true,
"nodes": [
{
"key": "/foo_dir",
"dir": true,
"modifiedIndex": 2,
"createdIndex": 2
},
{
"key": "/foo",
"value": "two",
"modifiedIndex": 1,
"createdIndex": 1
}
]
}
}如果我想访问/my/ service /东西,并且知道它不是在服务注册表中定义的,并且我们承认我根本不知道API,那么我该如何做呢?
我认为你的意思是“如果/my/service/东西是未定义的,我该怎么办?”在这种情况下,这完全取决于应用程序的逻辑。我认为,如果您期望在某一时刻出现该值,则可以重试合理的方法。
我要设定的价值是什么?事实上,对于动物园管理员,我们似乎必须设置一个模式url和一个值。这个价值是多少?
它的价值是你想要它在那里的任何东西。对于ZooKeeper,您可能希望对每个服务器节点使用临时节点。您可以将连接到该节点所需的数据保存在内部,或者什么也不保存。
带动物园管理员服务的孩子们是什么?这个概念的目的是什么?
我认为您是在引用ZooKeeper ZNodes的层次结构。我认为,在这种情况下,“子”将是属于某个父节点的所有节点。例如,对于节点/a/b/c和/a/b/d,其父节点为/a/b,因此/a/b/c和/a/b/d的子节点为/a/b /c和/a/b/d。
希望这能有所帮助。
https://stackoverflow.com/questions/29613381
复制相似问题