当前位置: 首页 > news >正文

Go语言——docker-compose部署etcd以及go使用其服务注册

一、docker-compsoe.yml文件如下

version: "3.5"services:etcd:hostname: etcdimage: bitnami/etcd:latestdeploy:replicas: 1restart_policy:condition: on-failureprivileged: truevolumes:# 持久化 etcd 数据到宿主机- "/app/apisix/etcd/data:/bitnami/etcd/data"environment:# 客户端广播地址- "ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379"# 客户端监听地址- "ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379"# 节点间通信地址- "ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380"- "ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380"# 设置初始集群信息- "ETCD_INITIAL_CLUSTER=node1=http://0.0.0.0:2380"- "ETCD_NAME=node1"- "ETCD_DATA_DIR=/opt/bitnami/etcd/data"# 👇 开启权限认证(必须配置密码)- "ETCD_AUTH_ENABLED=true"- "ETCD_ROOT_PASSWORD=123456"ports:- "2379:2379"   # 客户端通信端口- "2380:2380"   # 节点间通信端口networks:- etcdnetnetworks:etcdnet:name: etcdnet

安装完成之后,进入容器中,使用如下命令,测试连接

etcdctl --user root:123456 endpoint health

二、go项目中安装依赖

go get go.etcd.io/etcd/client/v3
go get github.com/go-kratos/kratos/contrib/registry/etcd/v2

三、main.go中注册服务

func newApp(logger log.Logger, gs *grpc.Server, hs *http.Server) *kratos.App {client, err := clientv3.New(clientv3.Config{Endpoints: []string{"127.0.0.1:2379"},})reg := etcd.New(client)if err != nil {panic(err)}return kratos.New(kratos.ID(id),kratos.Name(Name),kratos.Version(Version),kratos.Metadata(map[string]string{}),kratos.Logger(logger),kratos.Server(gs,hs,),kratos.Registrar(reg),)
}

四、启动项目,成功之后,进入容器查看

etcdctl --user root:123456 endpoint health
## print: 127.0.0.1:2379 is healthy: successfully committed proposal: took = 1.728868ms

相关文章:

  • SpringBoot中的拦截器
  • Web 架构之负载均衡会话保持
  • 互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-5
  • Java自定义线程池:从原理到高性能实践
  • DAY 24 元组和OS模块
  • Visual studio 打包方法
  • Nacos源码—9.Nacos升级gRPC分析七
  • MySQL 8.0 OCP 英文题库解析(四)
  • docker 快速部署若依项目
  • SimScape物理建模实例2--带控制的单质量弹簧阻尼系统
  • Linux云计算训练营笔记day07(MySQL数据库)
  • MySQL 8.0 OCP 1Z0-908 51-60题
  • SSH免密登录的5种实现方法
  • k8s初始化时候,报错无法通过 CRI(容器运行时接口)与 containerd 通信
  • 2025.05.10京东机考真题算法岗-第二题
  • 【数据结构】——栈和队列OJ
  • TCP核心机制
  • list基础用法
  • Docker疑难杂症解决指南
  • ThingsBoard3.9.1 MQTT Topic(4)
  • 中保协发布《保险机构适老服务规范》,全面规范保险机构面向老年人提供服务的统一标准
  • 筑牢安全防线、提升应急避难能力水平,5项国家标准发布
  • 明查|印度空军“又有一架战机被巴基斯坦击落,飞行员被俘”?
  • 从600名外到跻身大满贯,孙发京:走过的路成就了现在的我
  • 马鞍山市原常务副市长黄化锋一审获刑11年,涉案金额三千余万元
  • 雷军:过去一个多月是创办小米以来最艰难的时间