作者:创业语录分享_689 | 来源:互联网 | 2024-12-13 09:10
Consul 是由 HashiCorp 开源的一款强大的服务网格解决方案,集成了服务发现、配置管理、健康检查以及安全通信等功能,无需依赖额外的工具即可实现全面的服务管理。其部署简便,仅需一个可执行的二进制文件,每个节点都需运行一个代理(Agent),支持服务器和客户端两种模式。为了确保数据的一致性和安全性,官方推荐每个数据中心至少部署3到5个服务器节点。
单节点安装
下载 Consul 安装包:
wget https://releases.hashicorp.com/consul/1.3.1/consul_1.3.1_linux_amd64.zip
解压并移动文件:
unzip consul_1.3.1_linux_amd64.zip
mv consul /usr/bin/
验证安装:
consul --version
创建数据目录:
mkdir /usr/local/consuldata
启动 Consul:
nohup /usr/bin/consul agent -server -data-dir=/usr/local/consuldata -bootstrap-expect 1 -ui -advertise=192.168.209.128 -client=192.168.209.128 > /usr/local/consuldata/consul.log 2>&1 &
访问 Consul UI:
打开浏览器,访问 http://192.168.209.128:8500 查看 Consul 界面。
集群环境配置
创建配置文件:
cd /usr/local/consuldata
touch consul_config.json
编辑 consul_config.json
文件,添加以下内容(以其中一台机器为例,其他机器只需更改 IP 和节点名):
{
"datacenter": "dc1",
"data_dir": "/usr/local/consuldata",
"log_level": "INFO",
"server": true,
"node_name": "node1",
"ui": true,
"bind_addr": "192.168.209.128",
"client_addr": "0.0.0.0",
"advertise_addr": "192.168.209.128",
"bootstrap_expect": 3,
"ports": {
"http": 8500,
"dns": 8600,
"server": 8300,
"serf_lan": 8301,
"serf_wan": 8302
}
}
启动集群:
在每台机器上执行命令,加入集群:
nohup /usr/bin/consul agent -config-file=/usr/local/consuldata/consul_config.json > /usr/local/consuldata/consul.log 2>&1 &
对于后续节点,使用 -retry-join
参数指定主节点的 IP 地址:
nohup /usr/bin/consul agent -config-file=/usr/local/consuldata/consul_config.json -retry-join=192.168.209.128:8301 > /usr/local/consuldata/consul.log 2>&1 &
检查集群状态:
/usr/bin/consul members -http-addr=192.168.209.128:8500
/usr/bin/consul info -http-addr=192.168.209.128:8500
服务注册与发现示例
创建 Spring Boot Maven 项目,用于演示服务注册和发现的功能。
在 service
模块中,通过配置文件将服务注册到 Consul。
在 client
模块中,编写控制器来调用注册的服务。
启动 service
模块,确认服务已成功注册到 Consul。
启动 client
模块,测试服务发现功能,确保能够正确获取到服务信息。
以上步骤完成后,您将拥有一个基本的 Consul 集群环境,并能够通过 Spring Boot 应用程序展示服务注册与发现的实际应用。