写点什么

[ CloudWeGo 微服务实践 - 08 ] Nacos 服务发现扩展 (1)

作者:baiyutang
  • 2021 年 11 月 14 日
  • 本文字数:762 字

    阅读完需:约 3 分钟

[ CloudWeGo 微服务实践 - 08 ] Nacos 服务发现扩展  (1)

今天要做的是 《[ CloudWeGo 微服务实践 - 06 ] 服务发现》与《[ CloudWeGo 微服务实践 - 06 ] 服务发现》的扩展,之前是用 etcd 做的注册中心,今天我们换一个 Nacos,但其实相当于服务数据的存储形式或者注册中心换了,但是接口和实现上都没变。甚至封装的套路都没变。不过我们看看今天怎么实现一下。如何支持 Nacos 的注册中心。

目标

  1. 封装一个以 Nacos 为注册中心的服务发现扩展

环境

  1. MacOS Monterey 12.0.1

  2. go version go1.16.5 darwin/amd64

参考文档

  1. CloudWeGo 服务注册扩展

  2. Nacos 文档 - 快速开始

  3. registry-zookeeper

  4. 如何编写 Go 包

步骤

Nacos 安装

我们直接参考文实现即可

Java 环境准备

  1. 64 bit JDK 1.8+;下载 & 配置

下载编译后压缩包并启动服务

选择稳定的 release 代码,下载并解压

https://github.com/alibaba/nacos/releases


cd nacos/bin
# 启动服务,这里根据各自条件启动,如果遇坑,可能需要自己 debugbash startup.sh -m standalone
复制代码


比如,在我的环境下,我只能手动在前台启动服务,而没有使用脚本


验证效果

服务注册

curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
复制代码


执行以上,会输出如下:


服务发现

curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
复制代码



初始化 registry-nacos 仓库

这次编写这个扩展组件,我们按照一个 GitHub 标准仓库的形式去做。具体编写方式可参考之前的文章如何编写 Go 包

比如我在 GitHub 初始化了一个仓库,然后我准备在本地开发

git clone git@github.com:baiyutang/registry-nacos.git
复制代码


go mod 初始化

go mod init github.com/baiyutang/registry-nacos
复制代码




引入 nacos-go

 go get -u github.com/nacos-group/nacos-sdk-go
复制代码



总结

以上,因为时间问题,我们今天先把环境准备好,明天再去封装。

发布于: 2021 年 11 月 14 日阅读数: 14
用户头像

baiyutang

关注

广州 2017.12.13 加入

Microservices | Golang | Cloud Nitive | “Smart work,Not hard”

评论

发布
暂无评论
[ CloudWeGo 微服务实践 - 08 ] Nacos 服务发现扩展  (1)