go-consul实战

本文详述了使用Go语言操作Consul进行服务发现的实践过程,包括Consul的环境搭建、命令行操作,如服务注册、健康检查、KV存储的增删查改等。此外,还介绍了如何进行服务注册的单元测试和使用Go-Consul库进行服务发现。
摘要由CSDN通过智能技术生成

consul简介

官网介绍地址 视频介绍的挺不错的,不过是英文的

Consul is a service mesh solution providing a full featured control plane with service discovery, configuration, and segmentation functionality. Each of these features can be used individually as needed, or they can be used together to build a full service mesh. Consul requires a data plane and supports both a proxy and native integration model. Consul ships with a simple built-in proxy so that everything works out of the box, but also supports 3rd party proxy integrations such as Envoy.
大致的意思是,Consul提供服务网格(可自行搜索一下含义)解决方案,功能齐全,支持控制平面,服务发现、配置和分段功能。这些功能中的每个特性都可以根据需要单独使用,也可以一起使用来构建一个完整的服务网格。Consul需要一个数据平面,并支持代理和原生集成模型。Consul提供了一个简单的内置代理,因此一切都可以开箱即用,但也支持第三方代理集成,如Envoy。

学习参考的资料
官网
中文文档

环境搭建

前面介绍了consul的功能很强大,提供了服务网格的整体解决方案。本文主要使用 consul来演示其中服务发现这个单独的特性。本案例采用的是consul单机进行测试。启动服务consul服务端,需要占用6个端口,因此只部署了单实例,内存占用 17m, 占用端口8300,8301,8302,8500,8502,8600

说明

本文的实操环境是基于虚拟机完成,虚拟机通过静态ip与本机相连,虚拟机局域网ip地址固定为 10.248.174.155。consul的版本为1.11.1

# 虚拟机操作系统
> uname -a
> Linux n248-174-155 4.14.81.bm.15-amd64 #1 SMP Debian 4.14.81.bm.15 Sun Sep 8 05:02:31 UTC 2019 x86_64 GNU/Linux

下载安装

# 下载
wget https://releases.hashicorp.com/consul/1.11.1/consul_1.11.1_linux_amd64.zip
# 解压
unzip consul_1.11.1_linux_amd64.zip

解压后只有一个可执行文件,将这个可执行文件加入到环境变量PATH中即可,记得使用source 命令让PATH的变量重新加载

测试是否安装成功

# consul version 查看版本号
root@n248-174-155:~/file$ consul version
Consul v1.11.1
Revision 2c56447e
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

另外由于启动时,指定了参数开始 web-ui 所以可以在web端可视化的展示服务的状态,将ip替换成你的ip即可
http://10.248.174.155:8500/

命令实战

一般来说,官方提供的各种语言相关的sdk都原生命令有对应的联系,consul是用go语言编写的,原生api对go的支持非常好。
由于已经将consul 加入到PATH变量中了,所以接下来的操作都和在哪个目录完全没有关系了。

启动 consul

# 后台启动方式,指定了日志文件路径/home/root/consul/consul.log
nohup consul agent -dev -client 0.0.0.0 -ui > /home/root/consul/consul.log 2>&1 &

查看进程

root@n248-174-155:~/file$ netstat -ntpl|grep consul
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:8300          0.0.0.0:*               LISTEN      793138/consul
tcp        0      0 127.0.0.1:8301          0.0.0.0:*               LISTEN      793138/consul
tcp        0      0 127.0.0.1:8302          0.0.0.0:*               LISTEN      793138/consul
tcp6       0      0 :::8500                 :::*                    LISTEN      793138/consul
tcp6       0      0 :::8502                 :::*                    LISTEN      793138/consul
tcp6       0      0 :::8600                 :::*                    LISTEN      793138/consul

新增kv

consul kv put services/svr1/001 '{"Addr":"192.168.4.5","Port":3358}'
consul kv put ser
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值