Golang
Golang学习
我的名字豌豆
专注前端开发,懂一些Go啦~
展开
-
golang使用zookeeper进行增删改查
环境 连接zookeeper使用:samuel/go-zookeeper包代码部分package mainimport ( "fmt" "github.com/samuel/go-zookeeper/zk" "time")var ( host = []string{"127.0.0.1:2181"})func main() { conn, _, err := zk.Connect(host, 5*time.Second) if err != nil { panic(er原创 2021-09-06 00:18:31 · 347 阅读 · 0 评论 -
gin实现限流中间件
在Go编写web类型应用时,我们为了防止用户去非法狂刷接口,从而使得服务器资源被大量占用,在此我们可以对对应用户进行限流操作,当在一段时间内,只允许对应的数量的用户去访问我们对应的服务,代码原创 2021-09-02 01:10:28 · 1994 阅读 · 0 评论 -
教你go语言如何使用go module进行golang库依赖管理
前言 在go的版本1.13之前,依赖管理一直go语言的诟病,在这里我向大家简单介绍一下go moudle的使用,使用go moudle的前提为go语言版本为1.13及以上,再此贴出go moudle官方文档传送门:go moudle官方文档开启go modulewindows: 打开windows Powershell,输入如下语句:开启go module:set GO111MODULE=on配置GOPROXY的环境变量:SET GOPROXY = https://goproxy.cnma原创 2021-02-02 14:03:48 · 2256 阅读 · 1 评论 -
解决go get 下载过慢
windows解决办法 在windows powshell输入如下语句即可。go env -w GO111MODULE=on //启动Go Modules功能go env -w GOPROXY=https://goproxy.cn,direct //配置GOPROXY的环境变量$env:GOPROXY = "https://goproxy.cn"maxos/Linux解决办法 命令行输入如下语句即可~echo "export GOPROXY=https://goproxy.cn" >原创 2021-02-01 23:15:03 · 1772 阅读 · 0 评论 -
解决Go语言做爬虫状态码返回418
背景 在使用Go语言做爬虫时,使用http.Get(url)去获取网页内容,状态码返回404,Body体为空。原因分析 http.Get(url)是不需要设置header属性的http请求,比较简单快捷,但状态码返回418,表明我们需要设置其header属性,那么我们可以使用http.NewRequest,在设置其header属性即可~代码部分func main7() { client := &http.Client{} url := "https://movie.douban.c原创 2021-01-24 22:43:56 · 1980 阅读 · 0 评论 -
Go网络编程-网络文件传输
发送文件端func sendFile(conn net.Conn, filePath string) { // 只读打开文件 f, err := os.Open(filePath) if err != nil { fmt.Println("os.Open err:", err) return } //延迟关闭文件 defer f.Close() // 从本文件中,读数据,写给网络接收端。 读多少,写多少。原封不动。 buf := make([]byte, 4096) for原创 2021-01-21 20:43:21 · 1621 阅读 · 0 评论 -
Go网络编程-TCP-CS发送数据
并发服务器实现 代码部分://并发服务器端func HandlerConnect(conn net.Conn){ //运行结束后关闭,防止内存泄露 defer conn.Close() //获取链接的客户端 addr:=conn.RemoteAddr() fmt.Println(addr,"客户端链接成功") //循环读取客户端发送数据 buf:=make([]byte,4096) for { n,err:=conn.Read(buf) //如果客户端发出"exit+回车键"则原创 2021-01-20 20:38:49 · 1697 阅读 · 0 评论 -
Go语言之死锁的4种常见情况
什么是死锁? 死锁并不是锁的一种,而是一种错误使用锁导致的现象,死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。所以,对于死锁问题在理论上和技术上都必须予以高度重视。造成死锁的常见情况单go程自己死锁 func main() { ch:=make(chan int) //声明 //向ch中写入数据,ch此时等待读出数据,造成堵塞原创 2021-01-18 16:16:24 · 3079 阅读 · 1 评论 -
Golang之runtime.GOMAXPROCS()
作用 该函数的作用是设置当前进程使用的最大cpu核数,返回值为上一次调用成功的设置值,首次调用返回的是默认值(例如cpu为4核则返回值为4)。代码部分 func main() { //返回值n代表我们上次设置的cpu的最大个数 n:=runtime.GOMAXPROCS(1) //将cpu设置为1核 fmt.Println(n) //将cpu设置为1核时,下面两个进程将会互相争夺,谁抢到,谁就会开始不断打印 //所以打印结果是大片的1或0(谁抢到打印谁),下面紧接着打印另外一个数 //相原创 2021-01-16 21:20:59 · 4294 阅读 · 0 评论 -
使用Golang进行大量修改文件名
背景 在我们平时下载资料时,我们下载的资料的命名经常会带有某某网站的域名作为广告,虽为白嫖党,但是看起来很不舒服,下面我们使用Go语言进行大量修改文件名,将文件名中的广告域名去除。代码 作用:对该文件夹下的文件进行循环遍历,将文件名带有xxx.cn等等字样的文件后缀名去除import ( "fmt" "io/ioutil" "log" "os" "strings")func main() { path:="C:\\Users\\Desktop\\3_2020最新_Python_(M原创 2021-01-15 15:25:59 · 2830 阅读 · 0 评论 -
golang之不定参函数的用法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-01-08 15:42:52 · 1610 阅读 · 0 评论 -
golang生成随机数简解
先上代码为敬:package mainimport ( "fmt" "math/rand" "time") func main(){ //我们为了生成一个随机数,还需要个rand设置一个种子 rand.Seed(time.Now().Unix()) //time.now().Unix为返回时间戳 for i := 0; i < 5; i++ { // 如何随机的生成1-100整数 n := rand.Intn(100) + 1 //[0,100) fmt.Printf(原创 2020-11-09 19:55:21 · 1635 阅读 · 0 评论