gpt4 book ai didi

java - 服务发现模式

转载 作者:行者123 更新时间:2023-12-01 11:39:55 25 4
gpt4 key购买 nike

我实际上正在研究服务发现模式,但我并不真正了解它的工作方式。

我读过一篇文章,使用名为 etcd 的 Nodejs 库( http://lukebond.ghost.io/service-discovery-with-etcd-and-node-js/ ),它似乎很容易使用,就像只设置一个模式 url lile/my/service 一样。

那么我有一些问题:

  • 如何从另一个 Nodejs 应用程序访问此服务?
  • 如果我想访问/my/service/something,并且知道它未在服务注册表中定义并且我们承认我根本不了解 API,我该怎么办?

读完这篇文章后,我尝试了解zookeeper是如何工作的。有了这个,并使用标准库( https://github.com/yfinkelstein/node-zookeeper ),我面临一个问题:

  • 我必须设置什么值?事实上,对于zookeeper,我们似乎必须设置一个模式url和一个值。这个值是多少?
  • zookeeper 的服务子项有哪些?这个概念的目的是什么?

感谢大家的提前

感谢您的提前

最佳答案

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

how can I access this service from another nodejs app ?

像 etcd 这样的服务发现工具将返回您所需服务的端点列表。参见示例here :

{
"action": "get",
"node": {
"key": "/",
"dir": true,
"nodes": [
{
"key": "/foo_dir",
"dir": true,
"modifiedIndex": 2,
"createdIndex": 2
},
{
"key": "/foo",
"value": "two",
"modifiedIndex": 1,
"createdIndex": 1
}
]
}
}

how can I do if I want to access /my/service/something, knowing that it s not defined in the service registry and that we admit I dont know at all the API ?

我认为你的意思是“如果/my/service/something 未定义,我该怎么办”?在这种情况下,这完全取决于您的应用程序的逻辑。如果您期望该值会在某个时刻出现,我认为合理的方法是重试。

what is the value I have to set ? In fact with zookeeper, it seems that we have to set a pattern url and a value. What is this value ?

该值是您希望它存在的任何值。对于 ZooKeeper,您可能需要使用 ephemeral nodes对于每个服务器 Node 。您可以将连接到该 Node 所需的数据保留在内部,也可以不保留任何数据。

what are the service children with zookeeper ? What is the aim of this concept ?

我认为您引用的是 ZooKeeper ZNode 的层次结构。我认为这种情况下的“子 Node ”将是属于某个父 Node 的所有 Node 。例如,对于 Node /a/b/c 和/a/b/d,它们的父 Node 将是/a/b,因此/a/b 的子 Node 是/a/b/c 和/a/b/d。

希望这有帮助。

关于java - 服务发现模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com