问题标签 [consul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 领事和注册人到单一主机,有可能吗?
我需要使用 consul 和 registrator 管理多个 docker 容器到单个主机,目前我使用 docker-compose.yml 的“链接”,我将删除链接并使用 consul。我已经测试了单个主机的 consul 和 registrator,但是分配了 ip节点总是一样的。有可能是registrator分配了docker容器的ip而不是节点ip?
web-services - 使用 Consul 跟踪所有 REST 端点
要求:5 个不同的内部应用程序公开 REST 端点。更多应用程序即将出现,这将暴露更多新端点。部署这些应用程序时需要能够自动注册新端点。以及某种可以列出集群中所有端点的 Web ui。
我们正在评估 consul.io,我不确定这是否符合要求。
我经历了领事教程,我对服务注册的概念感到困惑。
当应用服务器启动时,如何注册一个 RESTful 端点?此外,如果 app1 想知道 app2 公开的确切端点地址,app1 是否能够为此查询 consul?
还有其他要结帐的 git repo 吗?
PS。应用程序建立在播放框架上。
consul - Consul - 为不同的主机部署不同的配置
我正在尝试部署一个领事集群。我有以下机器:
我有 3 个单独的配置文件。每台服务器上各一个。
如果我添加一个新服务器(比如 web02),我怎样才能让它自动采用 web 服务器配置?
consul 是否支持配置发现,还是我需要使用 chef/puppet/ansible/salt 将 web config 部署到 web 服务器?
consul - 领事 - 如果驱动器已满,则发出警报
在 consul 的演示中,有磁盘利用率和内存利用率的检查。
http://demo.consul.io/ui/#/ams2/nodes/ams2-server-1
你怎么能写一个配置来做演示显示的事情?10% 的警告和 5% 的严重错误?
这是我正在尝试的
这是相同的脚本,但更易于阅读
看起来检查正在工作,但它没有打印出任何文本。如何验证这是否有效并打印输出?
docker - consul healthcheck 运行后状态为“Dead”的 Docker 容器
我正在使用 consul 的健康检查功能,并且不断得到这些“死”容器:
究竟什么是“死”容器?停止的容器何时变为“死亡”?
作为记录,我运行 progrium/consul + gliderlabs/registrator images + SERVICE_XXXX_CHECK 环境变量来进行健康检查。它运行一个运行状况检查脚本,每 X 秒运行一次图像,例如docker run --rm my/img healthcheck.sh
我一般对“死亡”的含义以及如何防止它发生感兴趣。另一个奇怪的事情是我的死容器没有名字。
这是来自容器检查的一些信息:
奇怪的是,只有偶尔一个容器会死掉并且不会被移除。
谢谢
编辑:查看日志,我发现是什么导致容器停止失败:
为什么会这样?
spring - Spring cloud consul 类未找到 RestTemplateCustomizer
我想使用 spring cloud consul 进行服务发现,但是得到了
java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer.RestTemplateCustomizer
,我在这里缺少什么?
我的 pom.xml
我的应用类
引导程序.yml
应用程序.yml
全跟踪
ports - 领事使用的不同端口
consul使用了哪些不同的端口?每个端口的用途是什么?有没有办法配置领事使用不同的端口运行?
persistence - Consul 是否保留键值存储?
我正在评估一些分布式键值存储,etcd和Consul看起来都非常有前途。我对服务发现、健康监控和配置服务感兴趣。
我喜欢 Consul 提供的额外功能,但我无法确定它是否会在服务出现故障时保留 Key-Value 存储?似乎 etcd 提供了持久性。有什么建议吗?
consul - 领事代理没有回应
我在领事代理注册服务时遇到问题。consul 代理在集群成员信息中被列为活动,但它不注册服务或通过 HTTP 接口响应查询。日志中有错误,但我无法解释:
这是在此服务器上运行的领事代理的配置:
以及服务器的配置。集群有 3 个服务器代理。
apache-zookeeper - Consul 等配置工具如何向客户端“推送”配置更新?
从Chef/Puppet/Ansible 等传统的“静态”配置管理工具中剥离全局状态,转而将配置存储在一些集中/分布式工具中,其中主要参与者似乎是:
- 动物园管理员(阿帕奇)
- 领事(Hashicorp)
- 尤里卡 (Netflix)
这些工具中的每一个都有不同的工作方式,但原理是相同的:
- 将您的环境变量和其他动态配置(即,可能会更改的内容)作为键/值对存储在这些工具中
- 在启动时通过客户端连接到这些工具/服务并下拉配置 KV 对。这通常需要客户端提供服务名称(“
MY_APP
”)和环境(“DEV
”、“PROD
”等)。
有一个出色的 Consul Java 客户端,它精美地解释了所有这些,并提供了充足的代码示例。
我对这些工具的理解是,它们建立在诸如 Zab、Paxos 和 Gossip 等共识算法之上,这些算法允许配置更新几乎像病毒一样传播,并最终保持一致性,遍及您的节点。所以这里的想法是,如果你有一个myapp
有 20 个节点的应用程序,比如说myapp01
通过myapp20
,如果你对其中一个节点进行配置更改,那么该更改将在几秒/分钟的时间内自然地“传播”到 20 个节点。
我的问题是:这些更新实际上是如何部署到每个节点的?在所有客户端 API(我在上面链接的那个,ZooKeeper API 或 Eureka API)中,我都没有看到某种可以设置并用于在集中式服务(例如 Consul)时通知客户端的回调功能集群)想要推送和重新加载配置更新。
所以我问:这应该如何工作(动态配置部署和客户端重新加载)?尽管 Consul 的 API 似乎是最先进的恕我直言,但我对这 3 个工具中的任何一个的任何可行答案都很感兴趣。