暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

造一个golang轮子:实现nacos sidecar服务自动注册

        在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上看一看,发现新的服务已经注册上去了,是不是很爽?

                先卖个关子,下一讲我们介绍下这么方便的轮子源码是如何实现的。

                文章转载自golang算法架构leetcode技术php,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论