问题标签 [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.
consul - Consul 代理如何知道它是集群的领导者?
在 Consul 中,您可以拥有许多代理作为服务器或客户端。在所有服务器中,一个被选为领导者。从代理的角度来看,它怎么知道自己是领导者?
service - 当面向消息的中间件完成这项工作时,为什么还要为服务发现而烦恼呢?
我得到了 etcd/consul/$whatever 试图解决的问题。服务消费者需要与服务提供者交谈,一个流动性极大的分布式系统需要一种机制来将两者结合起来。
然而,“服务消费者的请求去哪儿了”的问题?是旧的,IMO 已经用 MOM 解决了 - 面向消息的中间件。
在 MOM 中,这个想法是服务消费者不关心服务提供者住在哪里。他们只是发送一条消息并让消息总线负责将消息路由到适当的消费者。可以有多个提供者都在做同样的事情(基于队列的循环)或版本化的提供者(/v1/request 转到一个,/v2/request 转到另一个)。
这是一种简单而强大的集成模式,将服务接口与其实现完全分离。
然而我看到了这种对发现服务提供者的奇怪痴迷,这似乎在消费者和提供者之间建立了紧密的耦合(除了一些其他的反模式之外)。
那么,我在这里缺少什么?TIA。
docker - 使用 Consul 的 Docker 容器通信
我已经阅读了有关使用 Consul 的 Docker 服务发现的信息,但我无法理解。
您能否向我解释一下,我如何运行两个 docker 容器,使用 Consul 从第二个容器主机识别并发送一些消息?
network-programming - Socketplane 和 Docker:如何将 2 个(或更多)物理主机相互连接
我曾经使用Wea ve 解决 2 个或更多主机之间的 docker 网络问题。我看到 Docker几天前买了SocketPlane。Docker 的目标似乎是将 SocketPlane 集成为网络功能。
我阅读了很多次文档(目前还不是很丰富),但我还没有看到如何通过网络连接两个物理主机。
我已经看到上个月添加了一个新的集群功能(问题 #69),但我没有找到关于它的文档。
我想知道是否有人已经使用 SocketPlane 在同一个 docker 网络(跨主机的容器)中连接了 2 个或更多物理主机
socketplane 中还有一个我找不到文档的功能。这是关于领事集成。
谢谢你的帮助。
amazon-ec2 - Consul集群频繁“失败”
我是领事的新手,目前正在试验它。我根据这篇文章设置集群:https ://www.digitalocean.com/community/tutorials/an-introduction-to-using-consul-a-service-discovery-system-on-ubuntu-14-04 all代理处于“服务器”模式。然而,这个集群相当不稳定。当我在服务器上输入“exec consul members”命令时,我总是可以看到许多其他服务器处于“失败”状态(有时它们会恢复但很快又会再次失败)。我猜可能在编写配置文件时有一些技巧。
我使用 AWS EC2 实例来运行这些领事代理。
谢谢!约里克
consul - 领事:服务的代理有多少
我正在玩 Docker 和 Consul,我有几个关于代理服务映射的问题,尤其是在 docker 环境中。假设我有一个服务名称“myGreatService”,它是简单的 web nodejs helloworld 应用程序,使用名为“myGreatServiceImage”的 docker 镜像封装。从 Consul 文档中,我确实了解到,当您注册服务(通过 HTTP 或服务定义文件)时,服务即将“连接”到代理/领事节点(可以通过 /v1/catalog/service/ 检索有线节点) . 因此,如果一个领事节点已关闭(或节点健康检查确定它已关闭),那么“连接”到该领事节点的所有服务都将自动标记为已关闭。我对吗 ?
如果我通过 docker 在单个主机上多次运行我的 GreatServiceImage 图像(导致多个“myGreatService”服务实例)我应该运行多少个代理?每个主机管理该主机上的所有容器(所有服务实例)?或者也许每个容器(服务实例)都有一个单独的代理?
consul - 在标签上过滤返回的 consul.io 服务
我想知道是否有办法过滤领事使用标签返回给我的服务。
端点:
将服务映射返回到标签列表,并要求我在服务返回后对其进行解析。
我想知道是否有某种方法可以将我想要的标签(或多个标签)作为查询参数传递给端点并获取已经过滤的地图。
service - 使用 Consul Registrator 时 ServiceAddress 为空
这是我通过查询 Consul 服务 API (/v1/catalog/service/service1) 得到的。
我用来启动注册器和服务的命令:
我做错了什么步骤?如何将主机名分配给 ServiceAddress 字段?
docker - How do I keep IPs in a dockerized Consul cluster on a single node after restart
I am quite new to Docker and Consul and now trying to set up a local Consul Cluster consisting of 3 dockerized nodes. I am using the progrium/consul
Docker image and went through the whole tutorial and examples described.
The cluster works fine until it comes to restarting / rebooting.
Here is my docker-compose.yml
:
---
node1:
command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217"
image: progrium/consul
ports:
- "10.67.203.217:8300:8300"
- "10.67.203.217:8400:8400"
- "10.67.203.217:8500:8500"
- "10.67.203.217:8301:8301"
- "10.67.203.217:8302:8302"
- "10.67.203.217:8301:8301/udp"
- "10.67.203.217:8302:8302/udp"
- "172.17.42.1:53:53/udp"
restart: always
node2:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
node3:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
registrator:
command: "consul://10.67.203.217:8500"
image: "progrium/registrator:latest"
restart: always
I get message like:
[ERR] raft: Failed to make RequestVote RPC to 172.17.0.103:8300: dial tcp 172.17.0.103:8300: no route to host
which is obviously because of the new IP my nodes 2 and 3 get after the restart. So is it possible to prevent this? A read about linking and environment variables but it seems those variables are also not updated after a reboot.
consul - 为什么 Consul 的服务不支持自定义字段?
我发现在几种情况下,存储有关特定服务的附加元数据会很方便,但是服务 API中似乎不支持自定义字段(仅基本 id、名称、地址、端口)。例如,数据库名称或负载平衡器权重。
我对设计决策很好奇 - 是否有这样的最佳实践,或者这可能是未来可以做出的改进?
我知道我们可以使用 KV 存储来获取额外信息,但将类似信息捆绑在一起似乎更方便,而不是进行多次 Consul 查找。