前些日子写的限制请求次数,结果用的时候发现可以更简单实现。 需求:抓数据的网站限定1秒只能有10次请求 由于发起并发请求几乎是0耗时的,所以可以选择同时发完所有的请求,然后等到下一个周期。这样控制周期内请求次数只需要一个…
分类:go语言
Go语言之匿名组合
一. 概述 Go语言中没有封装,继承,多态的概念,但是可以通过别的方式来实现这些特征 封装:使用方法实现 继承:使用匿名字段实现 多态:使用接口实现 二. 匿名组合 2.1 匿名字段的初始化 package main i…
cos兼容aws-go-sdk使用指南
目前cos现网支持V4签名,所以之前由于V4签名被卡掉的awssdk现在都可以兼容cos了。 在这里提供一份aws-go-sdk兼容cos的使用指南 如何通过aws的 gosdk调用cos的服务 1、安装go并配置环境 …
Golang net/http
http包提供了HTTP client和service的实现。 client##### 使用http包提供的函数Get( )、Head( )、Post( )、PostForm( ),可以发起简单的HTTP(或者HTTPS…
Go开发Struct转换成map两种方式比较
最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接对struct结构进行操作的方法,有部分API是通过map进行数据库相关操作,那么就需要我们把struct转…
go语言为什么没有min/max(int, int)函数
golang为什么没有min/max(int, int)函数 我们知道go语言math包里面定义了min/max函数,但是是float64类型的,而并没有整数类型的min/max。 go语言的math包里面定义的min/…
go语言检查磁盘分区使用情况
go语言检查磁盘分区使用情况 利用系统调用syscall.Statfs获取磁盘分区使用情况 package main import ( "fmt" "math" "errors" "syscall" ) func Par…
Go的进程阻塞
在Go语言中,如果使用goroutine,经常需要阻塞主进程来等待goroutine的结束,我们有以下几种方式来实现 使用channel实现 package main import ( "log" "time" ) fu…
Go搞定比特币多重签名
使用 Go 写了个比特币多重签名的服务,这篇文章总结服务的结构及实现思路。 源码中主要涉及到的 Go package : dep Go package 管理工具 cobra 实现 cli LevelDB 保存加密处理后的…
Go-kit 构建微服务(一) 简介
简介: go kit 是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务。其解决了分布式系统中常见的问题,因此,使用者可以将精力集中在业务逻辑上。 Go-kit 组件介绍 2.1 Endpoint 端点:…
Go 语言极速入门10 - 并发模式之资源池
提供一个资源池,类似于数据库连接池的功能;资源池在 go 1.11.1 中有官方实现:sync/pool.go 一、资源池 package pool import ( "sync" "io" "errors" "log"…
王垠批评 golang
对 Go 语言的综合评价 语法: 类型定义需要很多 “眼球 parse” 语法: switch 语法为了显得简单, 把case 和cond 合二为一了, 从而造成混淆 工具链: 还比较缺乏, 工具不成熟, 有bug, 没…