NOTE
consul
1. 是什么 服务注册与发现的组件 2. 单机集群搭建 2.1. 下载 Download Consul \ Consul by HashiCorp 2.2. 配置文件 2.2.1. 创建目录 2.2.2. 配置文件 server1 server2 server3 2.3. 启动 server1 server2 server3 2.4. 测试 增加服务配置文件 增加服务 web ui 3. 参考 Consul集群搭建 \ 简书 WEHou
这是历史学习笔记,可能存在过时或不完整的理解。
1. 是什么
服务注册与发现的组件
2. 单机集群搭建
2.1. 下载
2.2. 配置文件
2.2.1. 创建目录
mkdir -p conf/{node1,node2,node3}
mkdir -p data/{node1,node2,node3}
2.2.2. 配置文件
- server1
{
"datacenter": "dc1",
"data_dir": "C:\\software\\consul_1.7.2\\data\\node1",
"log_level": "INFO",
"server": true,
"node_name": "node1",
"ui": true,
"bind_addr": "127.0.0.1",
"client_addr": "127.0.0.1",
"advertise_addr": "127.0.0.1",
"bootstrap_expect": 3,
"ports":{
"http": 8500,
"dns": 8600,
"server": 8300,
"serf_lan": 8301,
"serf_wan": 8302
}
}
- server2
{
"datacenter": "dc1",
"data_dir": "C:\\software\\consul_1.7.2\\data\\node2",
"log_level": "INFO",
"server": true,
"node_name": "node2",
"bind_addr": "127.0.0.1",
"client_addr": "127.0.0.1",
"advertise_addr": "127.0.0.1",
"bootstrap_expect": 3,
"ports":{
"http": 8510,
"dns": 8610,
"server": 8310,
"serf_lan": 8311,
"serf_wan": 8312
}
}
- server3
{
"datacenter": "dc1",
"data_dir": "C:\\software\\consul_1.7.2\\data\\node3",
"log_level": "INFO",
"server": true,
"node_name": "node3",
"bind_addr": "127.0.0.1",
"client_addr": "127.0.0.1",
"advertise_addr": "127.0.0.1",
"bootstrap_expect": 3,
"ports":{
"http": 8520,
"dns": 8620,
"server": 8320,
"serf_lan": 8321,
"serf_wan": 8322
}
}
2.3. 启动
- server1
consul agent -config-dir C:\\software\\consul_1.7.2\conf\\node1
- server2
consul agent -config-dir C:\\software\\consul_1.7.2\conf\\node2 -retry-join=127.0.0.1:8301
- server3
consul agent -config-dir C:\\software\\consul_1.7.2\conf\\node3 -retry-join=127.0.0.1:8301
2.4. 测试
- 增加服务配置文件
{
"service": {
"name": "web",
"tags": ["master"],
"address": "127.0.0.1",
"port": 10000,
"checks": [
{
"http": "http://localhost:10000/health",
"interval": "10s"
}
]
}
}
- 增加服务
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("hello Web3! This is n3或者n2")
fmt.Fprintf(w, "Hello Web3! This is n3或者n2")
}
func healthHandler(w http.ResponseWriter, r *http.Request) {
fmt.Println("health check! n3或者n2")
}
func main() {
http.HandleFunc("/", handler)
http.HandleFunc("/health", healthHandler)
http.ListenAndServe(":10000", nil)
}
- web ui
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看