1、搭建集群环境
192.168.32.144 n1 server1
192.168.32.192 n2 server2
192.168.21.120本机 n3 server3
实验步骤:
1、以-bootstrap方式启动192.168.32.144环境:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
2、启动192.168.32.192环境,并加入集群:
./consul agent -server -data-dir /opt/consul/data -config-dir=./conf -node=n2 -bind=192.168.32.192
./consul join 192.168.32.144
3、启动192.168.21.120环境,并加入集群:
consul agent -server -data-dir e:\consul\data -node=n3 -bind=192.168.21.120
consul join 192.168.32.144
4、在每个节点上执行查询命令,查看cluster状态及哪个节点是leader:
./consul members
./consul info
5、验证自动选举:
通过 consul leave 停掉第一个节点,观察第二个和第三节点的选举与状态变化。
6、再将第一个节点加入集群,注意此时不能有 -bootstrap 选项:
./consul agent -server -data-dir /opt/consul/data -node=n1 -bind=192.168.32.144
./consul join 192.168.32.192
2、配置服务
192.168.32.144 n1 server1
192.168.32.192 n2 server2
192.168.21.120本机 c1 client1
实验步骤:
1、在192.168.32.144及192.168.32.192上分别安装tomcat及rcp-webclient(略)
2、分别在opt/consul目录下创建conf目录,并在conf目录中创建service.json文件,如下所示:
{
"service": {
"name": "web1",
"tags": ["master"],
"address": "127.0.0.1",
"port": 8080,
"checks": [
{
"http": "http://localhost:8080/rcp-webclient/ping.txt",
"interval": "10s"
}
]
}
}
启动时分别加上-config-dir选项,如:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
./consul agent -server -data-dir /opt/consul/data -config-dir=./conf -node=n2 -bind=192.168.32.192
3、查看节点及服务:
curl -s http://localhost:8500/v1/catalog/nodes
curl -s http://localhost:8500/v1/catalog/services
4、client方式启动本机的consul,并加入集群:
consul agent -data-dir e:\consul\data -node=c1 -bind=192.168.21.120
consul join 192.168.32.144
通过本机浏览器访问:
http://localhost:8500/v1/catalog/nodes
http://localhost:8500/v1/catalog/services
http://localhost:8500/v1/catalog/service/web1
5、健康检查
查看service是否正常可用
http://localhost:8500/v1/health/state/any
本机的tomcat正常运行和停掉后,查询会得出不同的结果。
3、其他
3.2 注意事项
1、linux采用0.6.3 64位的版本,经试验验证suse 9 32位的环境无法正常启动;
2、验证集群环境的选举,三台服务器才能生效,两台服务器无法成功;
3、退出时要采用 consul leave 命令,避免产生极端异常;
4、集群环境重新启动时,需要将各个节点的data目录清空,否则可能无法成功搭建集群环境。
3.1 测试web ui
下载UI程序,放置在/opt/consul/consul_0.6.3_web_ui目录下,增加-ui-dir选项启动consul,如下所示:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144 -ui-dir=/opt/consul/consul_0.6.3_web_ui
浏览器访问示例:
3.3 验证8500端口只能本机访问,不能远程访问
Consul启动后,在其他的服务器上通过浏览器发现无法访问,如192.168.21.120上无法访问192.168.32.144上的服务,如下示例:
http://192.168.32.144:8500/v1/catalog/services
通过netstat -ano|grep 8500查看,发现8500端口监听的地址为本地地址(127.0.0.1),这是导致其他机器无法访问的原因。
3.4 如何开通consul的远程web访问
操作步骤如下所示:
conf目录下增加一个config.json,如下所示:
{
"addresses": {
"http": "192.168.32.144"
}
}
通过下述命令重新启动:
./consul agent -server -bootstrap -data-dir /opt/consul/data -config-dir=./conf -node=n1 -bind=192.168.32.144
通过netstat -ano|grep 8500查看,发现8500端口监听的地址为192.168.32.144,允许其他机器访问
分析原因,本机启动一个agent client,监听本机的最可靠,如果监听远端服务器地址,应该监听哪一个呢,万一监听的服务器宕机了呢
相关推荐
### Consul 安装与升级知识点 #### 一、Consul 安装目录规划 - **Consul 安装目录**: `/usr/local/consul-VERSION` (其中 `VERSION` 表示当前版本号),安装完成后,通过软链接指向 `/usr/local/consul`。 - **二...
Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现、健康检查、配置共享和安全网络通信。在Windows操作系统上使用Consul,无论是Windows 10还是Windows 7,都能提供便捷的集群管理和...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置和服务网格功能。它提供了一套完整的解决方案,包括服务发现、健康检查、KV 存储、多数据中心的解决方案,广泛应用于微服务架构...
Consul是由HashiCorp公司开发的一款开源工具,用于实现分布式系统的服务发现与配置。在本地进行Consul客户端的开发和测试对于构建微服务架构至关重要。本文将深入探讨如何使用Consul客户端进行服务注册和发现,以及...
Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现、配置管理和安全通信。这个“Consul中文版帮助文档”很显然是为了帮助中国用户更好地理解和使用Consul而准备的。以下是对Consul及其...
consul可以进入后台,威胁敏感信息,对网络设备进行操作
Consul是一款由HashiCorp公司开发的开源工具,主要用于实现分布式系统的服务发现与配置。它提供了包括服务发现、健康检查、KV存储、多数据中心的解决方案。然而,在实际使用过程中,有时会遇到Consul无法正常启动的...
SpringCloud作为一个流行的微服务框架,提供了多种服务发现组件,如Nacos和Consul。本篇文章将深入探讨如何在SpringCloud项目中整合这两种服务发现工具。 **Nacos** Nacos是阿里巴巴开源的一款服务发现和配置管理...
在 `WebApi.Consul.Demo` 或 `WebApi.Consul.Interface` 项目中,我们可能看到使用 Consul 客户端进行服务发现的代码,通过调用 `Catalog.ServiceGet()` 或 `Health.ServicePassing()` 来获取服务列表或检查服务健康...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。它提供了包括服务发现、健康检查、KV 存储、多数据中心的解决方案,广泛应用于微服务架构中。让我们深入了解一下 Consul 的...
《Consul 1.4.0在Linux环境下的深度应用》 Consul是一款由HashiCorp公司开发的开源工具,它提供了服务发现、健康检查、KV存储、多数据中心的解决方案,广泛应用于微服务架构中。在Spring Cloud生态中,Consul作为...
- `springcloudzuulstart`可能包含`application.properties`或`application.yml`,用于配置Zuul与Consul的相关参数,如Consul的地址、服务名等。 - 可能有自定义的过滤器类,扩展Zuul的功能。 6. **部署与测试** ...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置管理和健康检查。在 Windows 操作系统环境下,Consul 的配置文件默认情况下并不具备持久化存储的特性,这意味着一旦服务器重启或...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现、配置管理和安全。在本文中,我们将深入探讨 Consul 的核心功能、架构、使用场景以及如何在 Linux 环境中安装和配置。 一、Consul 的...
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 ...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。这个压缩包“consul-1.6.1-win-64.zip”提供了 Consul 的1.6.1版本,专为在Windows 64位操作系统上运行而设计。在IT领域,服务...
Consul 是 HashiCorp 公司推出的一款开源工具,它提供了服务发现、健康检查、KV 存储、安全网络配置等功能,广泛应用于微服务架构中。这个压缩包 "最新版windows consul_1.13.0_windows_amd64.zip" 提供的是 Consul ...
Consul 是 HashiCorp 公司推出的一款开源工具,用于实现分布式系统的服务发现与配置。在微服务架构中,服务发现是至关重要的,Consul 提供了一种简单易用的方式来解决这个问题。它不仅包含了服务发现的功能,还集成...
在本文中,我们将深入探讨如何在C#项目中集成Ocelot与Consul,以便实现微服务间的通信和治理。Ocelot是一个用C#编写的API Gateway,它提供了简单的API路由、负载均衡和熔断等功能,而Consul则是一个用于服务发现和...
Consul 是一款强大的开源工具,由 HashiCorp 公司开发,主要用于实现分布式系统的服务发现、服务注册、健康检查和配置共享。在微服务架构中,Consul 的作用至关重要,它帮助解决服务间的通信问题,确保了服务的高...