1.下載Consul-windows版本。
下載地址:https://www.consul.io/downloads.html
選擇對應的windows版本即可。
2.準備配置文件,其中包括三個server和一個client,
注意其中node_name 需唯一,ui指定是否啓動可視化頁面,server區分server與client
server1:
{
"datacenter": "dc1",
"data_dir": "D:\\mayt\\software\\consul\\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": 2,
"ports":{
"http": 8500,
"dns": 8600,
"server": 8300,
"serf_lan": 8301,
"serf_wan": 8302
}
}
server2:
{
"datacenter": "dc1",
"data_dir": "D:\\mayt\\software\\consul\\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": 2,
"ports":{
"http": 8510,
"dns": 8610,
"server": 8310,
"serf_lan": 8311,
"serf_wan": 8312
}
}
server3:
{
"datacenter": "dc1",
"data_dir": "D:\\mayt\\software\\consul\\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
}
}
client1:
{
"datacenter": "dc1",
"data_dir": "D:\\mayt\\software\\consul\\client1",
"log_level": "INFO",
"node_name": "client1",
"bind_addr": "127.0.0.1",
"client_addr": "127.0.0.1",
"advertise_addr": "127.0.0.1",
"ports":{
"http": 8530,
"dns": 8630,
"server": 8330,
"serf_lan": 8331,
"serf_wan": 8332
}
}
3.啓動實例
consul agent -ui -bootstrap-expect=3 -config-file=D:\mayt\software\consul\service1.json -datacenter=dc1
consul agent -bootstrap-expect=3 -config-file=D:\mayt\software\consul\service2.json -datacenter=dc1 -join=127.0.0.1:8301
consul agent -bootstrap-expect=3 -config-file=D:\mayt\software\consul\service3.json -datacenter=dc1 -join=127.0.0.1:8301
consul agent -client=0.0.0.0 -config-file=D:\mayt\software\consul\client1.json -node=consul-client-1 -join=127.0.0.1:8301
分別啓動四個實例,啓動完成後可在server1中ui中查看狀態
http://127.0.0.1:8500/ui/dc1/nodes
如圖可看到節點共有四個,通過consul查看實例,三個爲server,一個爲client
4.啓動微服務註冊到對應consul,此處選擇了兩個服務,分別註冊於node1和node2,即8500端口和8510端口
debug: true
server:
port: 24543
spring:
cloud:
consul:
host: 127.0.0.1
port: 8510
discovery:
register: true
serviceName: ${spring.application.name}
healthCheckPath: /actuator/health
healthCheckInterval: 15s
tags: ma-/${spring.application.name}
instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
debug: true
server:
port: 24544
spring:
cloud:
consul:
host: 127.0.0.1
port: 8500
discovery:
register: true
serviceName: ${spring.application.name}
healthCheckPath: /actuator/health
healthCheckInterval: 15s
tags: ma-/${spring.application.name}
instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
啓動後可以在consul頁面中查看
node1信息:
node2信息:
至此完成。
注意:當註冊節點掛掉之後,在此節點註冊的微服務講不可用。即如果node1掛掉,其他服務將無法調用node1註冊的ma-spring-consumer服務。