我是靠谱客的博主 笨笨大象,最近开发中收集的这篇文章主要介绍Go语言微服务架构实战:第十二节 微服务管理--服务注册与查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

微服务管理--服务注册与查询

@author:Davie 版权所有:北京千锋互联科技有限公司

定义一个服务

服务的定义通过一个.json的json文件来进行定义,该文件中使用json格式定义所要注册服务的相关内容,以下为服务的json格式示例:

{
"service": {
"id": "firstservice",
"name": "firstservice",
"tags": ["dev"],
"port": 80,
}
}

服务注册

1、创建服务文件所存放的文件夹

sudo mkdir /etc/consul.d

说明:.d做后缀,表示一系列配置文件的存放目录

2、编写如章节一中的服务内容,并保存为文件

vim firstservice.json

内容是章节一部分的json中的内容。

说明:每一个服务都是以json文件格式的形式被单独声明在一个文件中,然后集中放到一个目录下。供consul启动时读取。

3、保存firstservice.json文件到指定目录

mv firstservice.json /etc/consul.d/

通过如上命令将自定义的firstservice.json服务文件移动至集中存放consul集群启动时要启动的服务目录中,即/etc/consul.d

服务查询

1、启动consul

由于我们添加了服务,启动的服务是以配置文件的形式进行配置的,因此,在启动时有必要指定服务配置文件所对应的目录,如下所示:

consul agent -dev -config-dir /etc/consul.d/

如上的命令表示:根据-config-dir指定的服务注册的目录中的文件来启动服务。

2、服务查询

服务的查询支持两种方式的查询,分别为:DNSHTTP

  • a、第一种:DNS
dig @127.0.0.1 -p 8600 dev.firstservice.service.consul

【说明:】 1、dev.firstservice.service.consul是固定的格式组合,具体格式为:tag.servicename.service.consul,即tagservicename为服务创建时自定义配置内容。2、DNS访问的端口是8600

  • b、第二种:HTTP
curl http://localhost:8500/v1/catalog/service/firstservice

【说明:】 1、HTTP访问路径:host:port/版本号/service/服务名。 2、Address:用于指定一个特定的Service的IP地址,默认情况下,使用的是该service使用的agent。

注册多个服务

1、每一个服务分别写一个json文件

例如,新建第二个服务sendservice,将新建secondservice.json文件,如下:

{
"service": {
"id": "secondservice",
"name": "secondservice",
"tags": ["dev"],
"port": 80,
}
}
  • 使用http格式访问:
    curl http://localhost:8500/v1/catalog/service/secondservice

2、将多个服务写到一个json文件中

除了将每一个服务单独定义为一个json配置文件外,consul还允许将多个服务组合定义在一个json文件中,具体的方式是对json文件的格式稍作修改,将原来的service修改为sevices,将原来service对应的对象类型,修改为数组类型。举例如下:

{
"services": [
{
"id": "firstservice",
"name": "firstservice",
"tags": ["dev"],
"port": 80
},
{
"id": "secondservice",
"name": "secondservice",
"tags": ["dev"],
"port": 80
}
]
}

说明: 1、放在多个services中而不是原来的service 2、多个服务放在一个数组中,起名为services

在实际的开发过程中,微服务数量众多。如果每个文件都放在一个文件里,文件会非常多;而如果所有服务都放在一个文件里,文件太大,也不合适。因此,在实践中,往往二者结合使用。例如,假设有100个微服务,则,放在10json文件中,每个文件中放10个微服务。

最后

以上就是笨笨大象为你收集整理的Go语言微服务架构实战:第十二节 微服务管理--服务注册与查询的全部内容,希望文章能够帮你解决Go语言微服务架构实战:第十二节 微服务管理--服务注册与查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部