第三章 consul服务注册与服务查询
2016-04-06 16:16
260 查看
1、定义一个服务
https://www.consul.io/docs/agent/services.html
该方法是服务注册中提供服务的最常用的方法。
关于服务的定义:服务的属性我们会在后边每出现一个总结一个,最后再做总结。
2、服务注册
2.1、创建服务文件所存放的文件夹
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/eb68444b512617d8a5e8db9d8c549e14.png)
说明:
.d做后缀:表示一系列配置文件的存放目录(directory)
2.2、创建服务并写入上述文件夹中的一个文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/ef0cb945c6e9540859738c473f249079.png)
说明:
一个服务我们会配置为json格式:比如上述的单引号之间的形式
一个服务会写在一个json文件中
注意:
如果上述文件夹没有权限进行操作,先改变文件夹权限,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/50ffc9d137b070eff9058cb118457c8b.png)
3、服务查询
先启动consul进程。
切换屏幕-->
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/cf6a3a120bee6ab1b3fb373a9339f279.png)
说明:
根据-config-dir指定根据服务注册的目录中的文件来启动服务。
两种查询方式:DNS和HTTP
3.1、DNS:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/78ea5e4fae1e850406433a7932c5fcd9.png)
访问的服务名字:
tag.servicename.service.consul tag和servicename都是创建服务的时候配置的
DNS访问的端口是8600
3.2、HTTP:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/385297a35dce7eefb997b9f1b4f22a0e.png)
说明:
访问的路径:host:port/版本号/catalog/service/服务名
Address:用于指定一个特定service的IP地址,默认情况下,使用的是该service使用的agent。
4、多个服务注册的情况
4.1、每一个服务注册到一个文件
假设现在又创建了一个secondservice服务,我会将该服务写入secondservice.json文件中去,如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201809/17/a10a8daac9d30ec34a297899288e42a4.png)
使用http去访问:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201809/17/ed5583e9d09ba2d39472918d074a098d.png)
说明:按照服务名去访问。
4.2、多个服务写在同一个json文件中
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/a605281b5db740c0eed2bc9cc1682849.png)
说明:
放在services中而不是service里(上边的单文件单服务是放在service里的)
多个服务放在一个数组里边
使用http去访问:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/22e6cd61c3472298391e4e664a7c340a.png)
说明:按照服务名去访问。
注意:在实际开发中,微服务数量众多,
如果每个文件都放在一个文件里,文件会非常多,不好!
如果所有微服务都放在一个文件里,文件太大,也不好!
所以,需要二者结合。例如,假设有100个微服务,放在10个json文件中去,每个json文件存放10个服务。
文章参考自:https://www.consul.io/intro/getting-started/services.html
https://www.consul.io/docs/agent/services.html
该方法是服务注册中提供服务的最常用的方法。
关于服务的定义:服务的属性我们会在后边每出现一个总结一个,最后再做总结。
2、服务注册
2.1、创建服务文件所存放的文件夹
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/eb68444b512617d8a5e8db9d8c549e14.png)
说明:
.d做后缀:表示一系列配置文件的存放目录(directory)
2.2、创建服务并写入上述文件夹中的一个文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/ef0cb945c6e9540859738c473f249079.png)
说明:
一个服务我们会配置为json格式:比如上述的单引号之间的形式
一个服务会写在一个json文件中
注意:
如果上述文件夹没有权限进行操作,先改变文件夹权限,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/50ffc9d137b070eff9058cb118457c8b.png)
3、服务查询
先启动consul进程。
切换屏幕-->
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/cf6a3a120bee6ab1b3fb373a9339f279.png)
说明:
根据-config-dir指定根据服务注册的目录中的文件来启动服务。
两种查询方式:DNS和HTTP
3.1、DNS:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/78ea5e4fae1e850406433a7932c5fcd9.png)
访问的服务名字:
tag.servicename.service.consul tag和servicename都是创建服务的时候配置的
DNS访问的端口是8600
3.2、HTTP:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/385297a35dce7eefb997b9f1b4f22a0e.png)
说明:
访问的路径:host:port/版本号/catalog/service/服务名
Address:用于指定一个特定service的IP地址,默认情况下,使用的是该service使用的agent。
4、多个服务注册的情况
4.1、每一个服务注册到一个文件
假设现在又创建了一个secondservice服务,我会将该服务写入secondservice.json文件中去,如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201809/17/a10a8daac9d30ec34a297899288e42a4.png)
使用http去访问:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201809/17/ed5583e9d09ba2d39472918d074a098d.png)
说明:按照服务名去访问。
4.2、多个服务写在同一个json文件中
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/a605281b5db740c0eed2bc9cc1682849.png)
说明:
放在services中而不是service里(上边的单文件单服务是放在service里的)
多个服务放在一个数组里边
使用http去访问:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/22e6cd61c3472298391e4e664a7c340a.png)
说明:按照服务名去访问。
注意:在实际开发中,微服务数量众多,
如果每个文件都放在一个文件里,文件会非常多,不好!
如果所有微服务都放在一个文件里,文件太大,也不好!
所以,需要二者结合。例如,假设有100个微服务,放在10个json文件中去,每个json文件存放10个服务。
文章参考自:https://www.consul.io/intro/getting-started/services.html
相关文章推荐
- 团队开发介绍
- RAID 磁盘状态为foreign,怎么变成ready
- 线性表--单链表(C++)
- java.lang.IllegalStateException: Fragement no longer exists for key f0: index 0
- TableView,点击状态栏滚动到顶部
- 解决Android Dialog 和软键盘共存
- 写给自己的话
- Android开发之如何保证Service不被杀掉(broadcast+system/app)
- centos6.5上部署集中化管理平台Saltstack!!!
- centos6.5上部署集中化管理平台Saltstack!!! 推荐
- C#使用多态求矩形及圆形的面积和周长
- Ubuntu下一些有意思的命令
- 字符串截取
- Android 编码规范
- (OK) 运行cBPM in Fedora23
- png转ico
- OpenGL基础图形编程(五)
- CCF 201312-5 I’m stuck!
- 教你如何让数据库支持emoji表情符存储
- Spring 注解总结