这一篇就来讲讲,go-micro v3 如何进行配置consul注册中心和操作配置中心
源码地址
前言
go-micro框架为服务注册发现提供了标准的接口Registry。只要实现这个接口就可以定制自己的服务注册和发现。不过官方已经为主流注册中心提供了官方的接口实现,大多数时候我们不需要从头写起。
代码仓库
示例代码
Docker 安装 Consul
这里使用 consul 演示,因为consul自带UI界面,方便操作
1 | bash复制代码docker pull consul # 默认拉取latest |
运行单机版consul
1 | ini复制代码docker run -d -p 8500:8500 --restart=always --name=consul consul:latest agent -server -bootstrap -ui -node=1 -client='0.0.0.0' |
参数解释如下:
- agent: 表示启动 Agent 进程。
- server:表示启动 Consul Server 模式
- client:表示启动 Consul Client 模式。
- bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。
- ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。
- node:节点的名称,集群中必须是唯一的,默认是该节点的主机名。
- client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0
- join:表示加入到某一个集群中去。 如:-json=192.168.0.11。
运行成功后,访问 http://localhost:8500
就可以到consul自带的UI界面了,如图:
关键代码
1 | go复制代码package main |
go-micro v3 提供 plugins,只需要引入并创建实例之后,使用 micro.Registry 注册即可
运行后效果图如下:
配置中心
点击 Key/Value 创建目录 micro/config,然后在config目录分别创建 mysql、redis、logger、server 四个目录,如下图所示:
以其中mysql为例,输入一下信息:
1 | json复制代码{ |
然后在 registerConfiguration 创建 config 目录,并创建 config.go、mysql.go文件,分别编写其中代码
config.go
1 | go复制代码package config |
mysql.go
1 | go复制代码package config |
main.go
在启动服务之前就可以获取配置中心的配置信息,代码如下:
1 | go复制代码// 配置中心 |
运行后入如下图,可以看到,已经成功获取刚才输入的配置信息:
本文转载自: 掘金