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

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
http://www.xdnf.cn/news/5826.html

相关文章:

  • Spark处理过程—转换算子
  • 0.66kV0.69kV接地电阻柜常规配置单
  • 仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮
  • 裸金属服务器 VS 传统物理机
  • 鸿蒙next播放B站视频横屏后的问题
  • Linux之进程控制
  • 【Linux网络】HTTPS
  • k8s v1.26 实战csi-nfs 部署
  • 深度剖析:Vue2 项目兼容第三方库模块格式的终极解决方案
  • 无人机俯视风光摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • MATLAB语音情感识别神经网络方法
  • 中国版 Cursor---腾讯云 CodeBuddy | 从安装VSCode到数独小游戏问世
  • yolo11n-obb训练rknn模型
  • 贪心算法:最小生成树
  • 【Qt】之音视频编程1:QtAV的背景和安装篇
  • 蓝桥杯12届国B 纯质数
  • git Authentication failed for 的解决办法
  • 重构门店网络:从“打补丁“到“造地基“的跨越
  • IDEA查看类结构视图窗口,接口的所有的实现类图
  • Python爬虫常用项
  • Spring @Transactional事务传播机制与MySQL事务原理解析
  • 【日撸 Java 300行】Day 14(栈)
  • 关于IDE的相关知识之二【插件推荐】
  • 基于FPGA的视频接口之千兆网口(七GigE)
  • 多线程爬虫语言选择与实现
  • 青少年编程与数学 02-019 Rust 编程基础 09课题、流程控制
  • 手机相册的 “智能分类” 功能
  • point3d 视野朝向设置
  • 使用交互式半自动化标注工具制作语义分割数据集
  • AI智能分析网关V4助力工厂/工地/车间/能源矿山场景玩手机行为精准检测与安全生产智能化监管