老师启动了三个consule服务节点分别是
docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0
docker run --name consul2 -d -p 8501:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2
docker run --name consul3 -d -p 8502:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2
这三个节点都是server,不需要启动client吗
consule运行的机器,是否最好只运行consule,为了保证consule的稳定吗?
这句话没太理解
-client 指定consul绑定在哪个client地址上,这个地址可提供HTTP、DNS、RPC等服务,默认是127.0.0.1
“指定consul绑定在哪个client地址上”,什么是client地址,是本机?网卡?,还是其他运行了consule的机器
运行go程序,使用的是
go run xxx.go --registry=consule
那里可以查到参数的文档说明
在
–registry=consule
中,consule是固定的吗。
这样的服务注册消息是如何发出的
{
"ID": "userServiceId", //服务id
"Name": "userService", //服务名
"Tags": [ //服务的tag,自定义,可以根据这个tag来区分同一个服务名的服务
"primary",
"v1"
],
"Address": "127.0.0.1",//服务注册到consul的IP,服务发现,发现的就是这个IP
"Port": 8000, //服务注册consul的PORT,发现的就是这个PORT
"EnableTagOverride": false,
"Check": { //健康检查部分
"DeregisterCriticalServiceAfter": "90m",
"HTTP": "http://www.baidu.com", //指定健康检查的URL,调用后只要返回20X,consul都认为是健康的
"Interval": "10s" //健康检查间隔时间,每隔10s,调用一次上面的URL
}
}
怎么指定里面字段的值呢
我在两台机器上,部署了相同的用户注册的接口,用户注册接口分别注册到了两个consule上,就会有两个consule的ip地址。
那这样的话,对外的单点是谁呢?是否要引入新的负载均衡软件。
还是说一种业务服务(比如用户注册),只注册到统同一个consule上?
其他的业务继续细分拆解部署到不同的机器上,就会出现很多的ip。
比如
用户注册业务 在 consule为127.x.x.1 和 consule为127.x.x.2的机器上
文件上传业务 在 consule为127.x.x.2 和 consule为127.x.x.3 的机器上
文件下载业务 在 consule为127.x.x.3 和 consule为127.x.x.4 的机器上
这样前端开发和后端管理岂不是要疯了。
我的开发方向在 pc客户端,web前端,后端java,php,node,go等语言,开发方式比较传统。为了给自己充电,购买了您的课程,微服务也是初次尝试,思维有所局限,还望老师指点迷津??。