首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务发现模式

服务发现模式
EN

Stack Overflow用户
提问于 2015-04-13 19:22:09
回答 1查看 545关注 0票数 0

我实际上正在研究服务发现模式,但我不太明白它是如何工作的。

我阅读了一篇使用nodejs的名为etcd ( http://lukebond.ghost.io/service-discovery-with-etcd-and-node-js/)的库的文章,使用起来似乎很容易,比如只设置模式url lile /my/service。

然后我有几个问题:

  • 如何从另一个nodejs应用程序访问此服务?
  • 如果我想访问/my/ service /东西,并且知道它不是在服务注册表中定义的,并且我们承认我根本不知道API,那么我该如何做呢?

在阅读了这篇文章之后,我试图了解动物园管理员是如何工作的。使用这个库并使用标准库( https://github.com/yfinkelstein/node-zookeeper ),我将面临一个问题:

  • 我要设定的价值是什么?事实上,对于动物园管理员,我们似乎必须设置一个模式url和一个值。这个价值是多少?
  • 带动物园管理员服务的孩子们是什么?这个概念的目的是什么?

谢谢大家提前

谢谢你提前

EN

回答 1

Stack Overflow用户

发布于 2016-03-02 00:31:38

这里是一篇很好的关于服务发现模式的文章。以下是一些基于标准模式的答案:

如何从另一个nodejs应用程序访问此服务?

像etcd这样的服务发现工具将为您需要的服务返回端点的list。参见示例这里

代码语言:javascript
复制
{
    "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。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29613381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档