簡體   English   中英

服務發現模式

[英]Service discovery pattern

我實際上正在研究服務發現模式,但我並不真正了解它的工作方式。

我已經閱讀了一篇文章,該文章使用的節點庫名為etcd( http://lukebond.ghost.io/service-discovery-with-etcd-and-node-js/ ),使用起來似乎很容易,就像僅設置模式網址一樣lile /我/服務。

然后我有一些問題:

  • 如何從另一個nodejs應用程序訪問此服務?
  • 知道服務注冊表中未定義/ my / service / something,並且我承認我根本不知道該API怎么辦?

閱讀本文后,我試圖了解Zookeeper的工作原理。 有了這個,並使用標准庫( https://github.com/yfinkelstein/node-zookeeper ),我遇到了一個問題:

  • 我必須設置什么值? 實際上,對於Zookeeper,似乎我們必須設置一個模式url和一個值。 這個值是多少?
  • 帶動物園管理員的兒童有哪些服務? 這個概念的目的是什么?

謝謝大家的進步

謝謝前進

是一篇關於服務發現模式的好文章。 以下是一些基於標准模式的答案:

如何從另一個nodejs應用程序訪問此服務?

諸如etcd之類的服務發現工具將為您返回所需服務的端點列表 在這里查看示例:

{
    "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 / something,並且我承認我根本不知道該API怎么辦?

我認為您的意思是“如果/ my / service / something未定義該怎么辦”? 在這種情況下,這完全取決於應用程序的邏輯。 我認為,如果您期望該值會在某個時候出現,那么將重試合理的方法。

我必須設置什么值? 實際上,對於Zookeeper,似乎我們必須設置一個模式url和一個值。 這個值是多少?

該值是您想要的任何值。 使用ZooKeeper,您可能希望對每個服務器節點使用臨時節點。 您可以將需要連接到該節點的數據保留在內部,也可以什么也不保留。

帶動物園管理員的兒童有哪些服務? 這個概念的目的是什么?

我認為您指的是ZooKeeper ZNodes的層次結構。 我認為在這種情況下,“子代”將是屬於某個父代的所有節點。 例如,對於節點/ a / b / c和/ a / b / d,其父節點為/ a / b,因此/ a / b的子節點為/ a / b / c和/ a / b / d。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM