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服务。