读完本文只需30秒。少刷一套抖音,多学一点技术,足足矣。
consul的服务发现功能有两种使用方式,大家可以在项目中根据需要选择适合自己的方式:
1. DNS接口
默认情况下,所有的DNS name都在 consul namespace, 这个是可以配置的
某个服务的dns名字为:NAME.service.consul
查询:
# dig @127.0.0.1 -p 8600 web.service.consul
2. http api方式
# curl http://localhost:8500/v1/catalog/service/web
注意:
如果想过滤健康的服务实例(health check为success的服务),则需要调用:
# curl 'http://localhost:8500/v1/health/service/web?passing'
而DNS接口的方式会自动过滤并返回健康的服务实例,这里有一个例子:
https://learn.hashicorp.com/consul/getting-started/services
在这个例子里,你会发现,虽然你成功注册了一个服务,但是health check 是fail的,所以执行:
# dig @127.0.0.1 -p 8600 web.service.consul
并未返回对应的服务!
以上就是通过consul进行服务发现的两种方式,你学会了吗?
每天学习一点点,早日踏上大神路。