gRPC入门系列之4-consul服务注册与发现

在前面几篇关于gRPC的文章中,我们已经实现了简单的gRPC接口,但是这些接口都是本地调用,这在现实生产环境中几乎不可能。在生产环境中,除非是直直接在固定ip的物理机/虚拟机上运行,否则ip地址是不固定的,而且服务的数量也是不固定的,这时候就需要服务注册与发现了。

在微服务架构中,服务的注册与发现是一个非常重要的组件,它可以让服务之间的调用更加简单,也可以让服务更加健壮。服务注册发现中间件有很多,比如etcd、consul、zookeeper等,这里我们选择consul。

在本章中,我们将实现如下功能:

  • 服务端启动时,将服务注册到consul中,并实现健康检查接口。
  • 客户端通过consul发现服务,获取服务列表,并根据从consul获取到的信息,调用服务。

本文示例环境及版本信息:

  • 操作系统:macOS。
  • Go版本:1.21.4。

准备工作

在开始之前,我们需要先安装consul。本机是mac,直接使用brew安装:

brew install consul

可以如下命令启动或停止consul:

# 启动consul
brew services start consul
# 停止consul
brew services stop consul

成功启动consul后,在浏览器中访问http://localhost:8500/ui/,可以看到consul的web界面,如下图所示:

alt

更多信息,大家可以访问consul官方网站查看:https://developer.hashicorp.com/consul/docs/install

服务端开发

为了方便,我们新建一个目录,复制之前gRPC系列之一-Unary模式中的代码,在其基础上进行开发。

下面,我们讲解一下主要逻辑:

初始化consul客户端

我们新建一个pkg目录,用于存放一些中间件代码,在pkg目录下新建consul/consul.go文件,内容如下:

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值