关于etcd安装使用遇到的坑

报错如下:

no required module provides package go.etcd.io/etcd/clientv3; to add it:
go get go.etcd.io/etcd/clientv3

或者:

undefined: resolver.ResolveNowOption

再或者:

module declares its path as: go.etcd.io/bbolt
but was required as: github.com/coreos/bbolt

关于etcd安装使用遇到的坑

先说解决方法(有两点):

  1. 确保etcd客户端成功get到。命令行下载命令:

【百度给的下载命令是 go get go.etcd.io/etcd/clientv3。这是错的,md。。】

go get go.etcd.io/etcd/client

不用指明版本,会安装所有版本,不信去看源码包,地址

  1. 确保正确的引入
import (clientV3 "go.etcd.io/etcd/client/v3")

给v3起个别名,用别名去获取包下的类和方法

即可,代码剩下的只要代码没问题就行。结束

正确的关键代码

package main

import (
	"fmt"
	"time"

	clientv3 "go.etcd.io/etcd/client/v3"
)

func main() {
	cli, err := clientv3.New(clientv3.Config{
		Endpoints:   []string{"127.0.0.1:2379"},
		DialTimeout: 5 * time.Second,
	})
	if err != nil {
		panic(err)
	}
	fmt.Println("etcd boot success")
	defer cli.Close()
}

问题的反思:

顺着报错去百度上找了相关的回答,确实挺相关的,但是在我这边无效。作者不知道是否真的泡通了。直到我去看了官方的文档的示例才发现不对。我是跟着网上视频教程来的,当然教程有点久远了好像19年的。

  1. 如果代码确定写的没问题,最好可以找找官发文档,尝试发现原因
  2. 熟悉语言基础特性。如果我很懂go包管理和代码风格的话也能找到问题了,一开始有下载成功客户端,但是编辑器也有提示引入错误了,如果我能跑去打开看下源码文件,源码包看到文件名或许就发现问题了,明显client下是还有文件夹的,引入的深度不对
  3. it更新换代快,年代久的教程谨慎入手
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值