造一个golang轮子:实现nacos sidecar服务自动注册
2023-06-13 09:15:58 时间
在nacos服务发现中我们介绍了nacos服务发现sdk的基本原理和golang源码实现。我们发现应用服务在启动的时候需要使用
success, err := namingClient.RegisterInstance(vo.RegisterInstanceParam{})
方法来实现服务的注册,这种注册方式将服务的实现和服务的注册耦合了,开发者需要关注服务注册这种运维相关的东西,其实是没有必要的。试想如果有个中间件能够监听服务的启动和停止,自动实现服务的注册和取消注册是不是很爽?于是实现了轮子
https://github.com/xiazemin/registrator-nacos
这个轮子目前是上传到dockerhub了
https://hub.docker.com/repository/docker/xiazemin/registrator-nacos
如果不想自己编译一遍的话可以直接使用镜像,下面我们演示下这个sidecar如何使用:
1,首先启动nacos
docker run --name nacos-quick -e MODE=standalone -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:2.0.2
登录到后台发现是没有服务的
http://127.0.0.1:8848/nacos/#/login
用户名密码都是 nacos
2,启动我们的sidecar
docker run -d \
--name=registrator-nacos \
--net=host \
--volume=/var/run/docker.sock:/tmp/docker.sock \
xiazemin/registrator-nacos:v0.0.1 \
nacos://127.0.0.1
这个时候发现我们本机已经启动的几个服务被注册到了nacos
比如promethus,实例数目是1,当我们停止sidecar的时候
docker stop registrator-nacos
发现我们注册的服务已经取消注册了,实例数目变成了0.
重启我们的sidecar接着实验
3,启动我们的业务服务
我本地有个镜像apple:5678,我们启动它
docker run -p5678:5678 apple:5678
测试下服务启动成功了
curl http://127.0.0.1:5678/apple
/apple
然后到nacos的dashboard上看一看,发现新的服务已经注册上去了,是不是很爽?
先卖个关子,下一讲我们介绍下这么方便的轮子源码是如何实现的。
相关文章
- 深度剖析Spring Cloud Alibaba系列——如何兼容Nacos
- 微服务(十三)——Nacos入门&Cloud Alibaba
- Nacos的注册和使用
- 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
- 用Nacos存储Sentinel的限流规则
- 万字长文 | Spring Cloud Alibaba组件之Nacos实战及其客户端服务注册源码解析
- nacos配置中心 服务启动的配置加载
- Nacos作为服务注册中心演示
- Nacos 2.2.0 正式发布!新特性很香!!
- SpringCloud之nacos
- 【官方】Nacos Spring Boot 快速开始
- Nacos作为服务配置中心实战
- Nacos 服务注册原理分析
- Gateway+Nacos根据服务名称实现动态路由报错:type=Service Unavailable, status=503
- docker nacos部署(Windows版本、Linux版本)
- 搭建Nacos,从Oracle升级到新版本(nacos改oracle)
- Nacos与Oracle的对比哪种数据服务更可靠(nacos oracle)