标签: consul

如何从 Spring Boot 应用程序更改 consul K/V Store 中的值

我在 Spring Boot 2 应用程序中使用 Consul 的键/值存储作为 PropertySource。(org.springframework.cloud:spring-cloud-starter-consul-config)

我可以使用 @ConfigurationProperties 从 K/V 存储中读取属性,甚至当我通过 Consul Web 界面更改值时使用 @RefreshScope 更新它们。

但我确实有一些可以在应用程序中更改的动态属性。我如何将这些更改传播到 Consul,以便这些值真正发生变化。我尝试使用该属性的 Setter,但这并没有改变 Consul 中的值。

java spring-boot consul

2
推荐指数
1
解决办法
1959
查看次数

尝试使用 sidecar 代理连接到网络时出现错误连接被拒绝

我正在关注本教程https://learn.hashicorp.com/consul/getting-started/connect

当我运行时 consul connect proxy -sidecar-for web它开始抛出此错误:

2020-07-26T14:30:18.243+0100 [ERROR] proxy.inbound: failed to dial: error="dial tcp 127.0.0.1:0: connect: can't assign requested address"
Run Code Online (Sandbox Code Playgroud)

为什么他的演示中没有分配端口?

{
  "service": {
    "name": "web",
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "socat",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

proxy consul sidecar

2
推荐指数
1
解决办法
2394
查看次数

使用 Traefik 实现 Nomad 高可用性

我决定尝试一下 Nomad,并且正在为公司的副项目建立一个小型环境。

尽管 Nomad/Consul 的文档很好而且很详细,但它们并没有达到向世界公开一个小型 Web 服务的简单任务。

按照官方教程使用 Traefik 作为负载均衡器,如何使这些公开的服务可访问?

该教程有一个脚注,指出可以通过端口 8080 从集群外部访问服务。

但在拥有 3 个服务器和 3 个客户端的集群中,我应该将 DNS 指向哪里?具有指向 3 个客户端的故障转移功能的 DNS 是否足够?我还需要为客户端提供负载均衡器吗?

consul traefik nomad

2
推荐指数
1
解决办法
1941
查看次数

如何在同一主机上的服务的consul容器中定义HTTP运行状况检查?

我们在也运行服务的主机上使用了一个consul代理.(RabbitMQ)为了验证服务是否准备就绪,我们已经定义了基于卷曲的运行状况检查.但是,我们使用registrator使用env变量注入此检查.SERVICE_CHECK_SCRIPT =卷曲hostname:15672/....

问题是,我们还告诉consul-agent其主机名与主机相同.(我们必须拥有此功能,因为我们希望看到向consul集群注册的正确主机名.

当consul代理运行运行状况检查时,它会在自己的容器中查找URL ...这显然会失败...是否有人知道如何定义此运行状况检查(我们使用mesos来执行此操作)以便curl将尝试连接到正确的IP?

registration health-monitoring docker mesos consul

1
推荐指数
1
解决办法
5300
查看次数

Spring云领事中的配置值未自动更改

我有一个非常简单的Spring云应用程序如下:

@SpringBootApplication
@EnableDiscoveryClient
@RestController
@EnableAutoConfiguration
public class SpringCloudConsulDemoApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(SpringCloudConsulDemoApplication.class).web(true).run(args);
    }

    @Value("${my.message}")
    private String message; 

    @RequestMapping("/")
    public String home() {
        return message;
    }

    @RequestMapping("/health")
    public String health() {
        return "Hello world";
    }
}
Run Code Online (Sandbox Code Playgroud)

我在/ config/SpringCloudConsulDemo,dev /下的consul中配置了"my.message".当我更改"my.message"的值时,我在spring cloud app中获得了一些输出:

2016-06-26 12:41:18.621  INFO 1187 --- [pool-1-thread-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@601c9895: startup date [Sun Jun 26 12:41:18 CST 2016]; root of context hierarchy
2016-06-26 12:41:18.631  INFO 1187 --- [pool-1-thread-1] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and …
Run Code Online (Sandbox Code Playgroud)

consul spring-cloud

1
推荐指数
1
解决办法
1003
查看次数

运行官方领事Docker映像

我正在尝试通过执行以下操作来运行官方docker映像

docker pull consul
docker run -d --name=dev-consul -p 8500:8500 consul
Run Code Online (Sandbox Code Playgroud)

当我尝试使用curl访问领事服务器时,我得到一个空的答复

   vagrant@docker:~$ curl localhost:8500/v1/catalog/nodes --verbose
* Hostname was NOT found in DNS cache
*   Trying ::1...
* Connected to localhost (::1) port 8500 (#0)
> GET /v1/catalog/nodes HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:8500
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)

我想念什么?

curl docker consul

1
推荐指数
1
解决办法
1861
查看次数

如何使Spring Cloud Consul向外部IP注册?

如何使Spring Cloud Consul向外部IP注册?

我在docker中使用spring cloud consul运行spring boot应用程序。该应用程序正在docker集群上的docker网络内部运行。

这意味着如果spring consul使用主机名或IP地址注册,它将获得docker swarm内部的主机名或ip地址。我的领事服务器在docker群之外。

java spring consul spring-cloud

1
推荐指数
1
解决办法
4386
查看次数

Prometheus:如何从多个数据中心获取Consul节点

我想使用Prometheus的Consul集成来自动发现我所有的领事节点。目前,我的Prometheus服务器仅从Consul中的单个数据中心接收节点,尽管我从未实际指定配置中要使用的数据中心(我猜它只是选择了我的consul-client(安装在我的prometheus服务器上)的一部分)的)。

如何从领事知道的所有数据中心获取所有节点?

consul prometheus

1
推荐指数
1
解决办法
1355
查看次数

Consul.IO - 为什么 Consul Cluster 至少需要法定数量的服务器节点才能处于活动状态

我花了一点时间来研究 Consul。我已经阅读了共识协议。我看到如果 Consul 集群想要可用,它需要一个法定人数的服务器节点来选举领导者。我想知道当 consul 集群运行的节点数少于法定人数时,为什么它不使用剩余的运行节点呢?谁能为我解答?非常感谢

raft consul

1
推荐指数
1
解决办法
468
查看次数

服务发现的领事和HA代理-我应该使用哪个?

我知道Consul是微服务时代的服务发现工具。但是在领事之前,发明了HA Proxy。那么,为什么我们需要Consul进行服务发现,或者Consul比HA Proxy更强大?Consul和HA Proxy之间有什么比较?请给我一些建议,我应该使用还是可以同时使用它们。

haproxy consul

1
推荐指数
1
解决办法
1411
查看次数