首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在领事中登记持久的对外服务

如何在领事中登记持久的对外服务
EN

Stack Overflow用户
提问于 2017-06-26 22:10:22
回答 3查看 1.8K关注 0票数 1

我正在通过Catalog http://127.0.0.1:8500/v1/catalog/register在领事中注册一个外部服务,其有效载荷如下:

代码语言:javascript
运行
复制
{
  "Datacenter": "dc1",
  "Node": "pedram",
  "Address": "www.google.com",
  "Service": {
    "ID": "google",
    "Service": "google",
    "Address": "www.google.com",
    "Port": 80
  },
  "Check": {
    "Node": "pedram",
    "CheckID": "service:google",
    "Status": "passing",
    "ServiceID": "google",
    "script": "curl www.google.com > /dev/null 2>&1",
    "interval": "10s"
  }
}

外部服务注册成功,我在注册服务列表中看到了它,但过了一段时间它就消失了。好像是自动注销的。

我在-dev模式下运行领事。

有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-01 13:21:45

我发现我应该在单独的节点中注册外部服务。我的应用程序的本地服务将在一个名为

代码语言:javascript
运行
复制
"Node": "pedram"

当我在此节点中注册外部服务时,它们将被自动删除。

但是,当我在一个新节点中注册我的外部服务时,所有新的外部服务都将被持久地注册,并准备作为所有其他本地服务使用。

我的新有效载荷如下:

代码语言:javascript
运行
复制
{
  "Datacenter": "dc1",
  "Node": "newNode",
  "Address": "www.google.com",
  "Service": {
    "ID": "google",
    "Service": "google",
    "Address": "www.google.com",
    "Port": 80
  },
  "Check": {
    "Node": "newNode",
    "CheckID": "service:google",
    "Status": "passing",
    "ServiceID": "google"
  }
}
票数 1
EN

Stack Overflow用户

发布于 2019-04-10 06:53:52

这是例外行为。在领事反熵文档

如果目录中存在代理不知道的任何服务或检查,则将自动删除这些服务或检查,以使目录反映该代理的适当服务和健康信息集。领事将代理状态视为权威;如果代理视图与目录视图有任何差异,则将始终使用代理-本地视图。

在您的设置中,主机'pedram‘中的代理不知道服务注册。因此,反熵策略删除了服务。

票数 1
EN

Stack Overflow用户

发布于 2017-06-30 12:21:12

你不应该使用-dev模式,除了测试/四处游玩。对于您的健康检查,我建议不要使用"script": "curl www.google.com > /dev/null 2>&1",,而是建议使用http健康检查:"http": "https://www.google.com",

有关健康检查的更多信息可以在这里获得:https://www.consul.io/docs/agent/checks.html

此外,如果可以的话,您可能应该迁移到HTTPS (端口443)。

它还可能有助于将其保存为.JSON文件,并让领事将其作为启动的一部分阅读,因为我猜您希望这是一个长期运行的外部服务。您可以通过命令:/usr/local/bin/consul agent -config-dir=/etc/consul/consul.d/etc/consul/consul.d/中的每个.json文件作为其配置的一部分来实现这一点。如果您更改了文件,consul reload将重新启动。

我会进行这些更改(不是在dev模式下运行,等等),看看问题是否仍然存在。我猜是不会的。

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

https://stackoverflow.com/questions/44769402

复制
相关文章

相似问题

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