-
boltdb 学习和实践
所属栏目:[大数据] 日期:2020-12-16 热度:104
golang boltdb的学习和实践 1. 安装 go get github.com/boltdb/bolt 2.创建和启动数据库 db,err := bolt.Open("my.db",0600,nil) 其中 open 的第一个参数为路径,如果数据库不存在则会创建名为my.db的数据库, 第二个为文件操作,第三个参数是可选参数, 内部[详细]
-
golang 中的 io包
所属栏目:[大数据] 日期:2020-12-16 热度:62
io包:定义一些抽象化的接口 读相关 名称 作用 备注 Read 读接口 1 ReadCloser 读接口(包含 Close接口) 2 ReadSeeker 从哪里读到哪里 3 ReaderAt 从一定距离开始读 4 ReaderFrom 包含 ReadForm方法,读到Eof 或 error停止。返回读到的字节数 5 写相关 名称[详细]
-
golang 中的 regexp 包
所属栏目:[大数据] 日期:2020-12-16 热度:54
正则语法google/ re2 Printf 语法 几个函数方法 名称 说明 备注 Match 验证正则表达式是否匹配 []byte - MatchString 验证正则表达式是否匹配 string - FindString FindStringSubmatch 返回 []string 分组 FindAllString Regexp的方法,匹配字符串,返回匹配[详细]
-
golang使用服务发现系统consul
所属栏目:[大数据] 日期:2020-12-16 热度:152
本文的完整代码见 https://github.com/changjixiong/goNotes/tree/master/consulnotes ,如果文中没有显示链接说明链接在被转发的时候被干掉了,请搜索找到原文阅读。 consul是什么 “Consul is a distributed,highly available,datacenter-aware,service di[详细]
-
golang实现基于redis和consul的可水平扩展的排行榜服务范例
所属栏目:[大数据] 日期:2020-12-16 热度:83
本文的完整代码见https://github.com/changjixiong/goNotes/tree/master/redisnote ,https://github.com/changjixiong/goNotes/tree/master/utils 及https://github.com/changjixiong/goNotes/tree/master/reflectinvoke如果文中没有显示链接说明链接在被转[详细]
-
如何在Golang中为http.Get()请求设置超时?
所属栏目:[大数据] 日期:2020-12-16 热度:156
我在Go中创建一个网址抓取器,并有一个要抓取的网址列表。我向每个URL发送http.Get()请求并获取他们的响应。 resp,fetch_err := http.Get(url) 如何为每个Get请求设置自定义超时? (默认时间很长,这使我的抓取器真的很慢。)我想我的抓取器有一个大约40-45秒[详细]
-
golang实现python xrange方法
所属栏目:[大数据] 日期:2020-12-16 热度:179
在python中,可以使用xrange方法方便地获取一个整数列表: for v in xrange( 5 ): print(v) 输出: 01234 golang没有原生的xrange方法,不过可以使用golang的channel配合goroutine实现一个xrange方法。 下面是一个简易版的: func xRangeInt(count int ) cha[详细]
-
统一任务调度平台scheduler for golang
所属栏目:[大数据] 日期:2020-12-16 热度:98
在企业项目开发中会定时执行对应的job,对于一些简单少的job可以直接使用调度器调度执行任务。当随着公司的业务越来越多,执行任务越来越多。那么直接使用任务调度器调度任务执行会变得臃肿,而且对于任务是动态配置不可实现。如:想某一个时刻停止任务的执[详细]
-
Golang 通过 Consul 实现分布式锁
所属栏目:[大数据] 日期:2020-12-16 热度:188
Consul 是什么 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对. 命令行超级[详细]
-
使用golang快速开发微信公众平台(九):下载对账单
所属栏目:[大数据] 日期:2020-12-16 热度:91
首先,对账单是csv格式的;其次,对账单不是非常标准非常标准的csv格式——你直接解析会挂掉。 所以我采用的方式为:把对账单分为2部分,先写第1部分,再把第2部分拼进去。 唉卧槽他大爷的微信。 package controllers import ( "github.com/astaxie/beego" "[详细]
-
golang下载支付宝对账单
所属栏目:[大数据] 日期:2020-12-16 热度:101
GRD支付宝,就不能不用zip来打包吗!!!!! 支付宝的对账单下载并不复杂,但他特么的就是不告诉你用GET还是用POST发送,发错了还给你甩一堆HTML过来,还都是乱码,唉卧槽他大爷坑了我2天时间。 下载及处理zip如下: package controllersimport ( "github.com/as[详细]
-
Golang运算符之间的区别:= vs =
所属栏目:[大数据] 日期:2020-12-16 热度:140
在go中,=和:=运算符之间的区别是什么?他们两个似乎都是为了任务?这可能是显而易见的,但我似乎无法在文档中找到它: 只有=是赋值运算符。 :=实际上不是一个operator。它是Short variable declarations子句的语法的一部分。[详细]
-
Golang的简明安装指南
所属栏目:[大数据] 日期:2020-12-16 热度:182
引言: Go language现在是大名鼎鼎,很多的开源项目都是基于go来做的,比如codis,ethereum等都用到了go lang,所以免不了要使用这个东东,本文将简明介绍安装步骤以及环境变量的设置。 下载 由于众所周知的原因,有时候从外网下载不稳定,故这里推荐从墙内的[详细]
-
借助GoLang开发工具进行高效开发
所属栏目:[大数据] 日期:2020-12-16 热度:92
Golang IDE 近期由JetBrains 推出的Golang IDE非常优秀 下载地址:https://download.jetbrains.8686c.com/go/gogland-171.4694.61.exe 也有MacOS和Linux版本。 直接下载安装即可使用,非常方便,前提得安装好GoLang的SDK。 安装好Golang之后查看是否安装好,[详细]
-
golang slice
所属栏目:[大数据] 日期:2020-12-16 热度:95
package mainimport "fmt"func main() {var arr1_ [8]intvar slice1_ []int = arr1_[0:5] // item at index 5 not included!var slice2_ []int = arr1_[0:4]arr1_[2] = 4fmt.Println(slice1_[2])fmt.Println(slice2_[2])slice1_[2] = 5fmt.Println(arr1_[2])[详细]
-
golang 模拟 curl post
所属栏目:[大数据] 日期:2020-12-16 热度:50
package mainimport (// "bytes""fmt""io/ioutil""net/http""net/url"// "os"// "strings")func main() {client := http.Client{}//向服务端发送get请求//request,_ := http.NewRequest("GET","http://192.168.1.35:9091/?publicKey=privateKey=info=sadmess[详细]
-
golang android xml parse
所属栏目:[大数据] 日期:2020-12-16 热度:110
package mainimport ( "encoding/xml" "strings" "fmt" "log" "os" "io/ioutil")type Node struct { XMLName xml.Name Id string `xml:"http://schemas.android.com/apk/res/android id,attr"` Nodes []Node `xml:",any"`}func walk(n Node,isNodeFunc func([详细]
-
我学xingo golang服务器之-XingoApi调用
所属栏目:[大数据] 日期:2020-12-16 热度:185
XingoApi调用 先看看protobuf msg定义: `message MyTestMsg{` ? int32Code= 1 ; // Field numbers must be positive integers. 必须大于0 ? stringContent= 2 ; //依次递增 `}` 。。。可以有很多 ` message xxx{``xxx= 1 ;`` ... ``}` windows下面GenProtos.[详细]
-
golang mongodb Aggregate
所属栏目:[大数据] 日期:2020-12-16 热度:143
q := []bson.M{ { "$group" : bson.M{ "_id" : bson.M{ "sessionid" : "$sessionid" }, "sessionid" : bson.M{ "$first" : "$sessionid" }, "des" : bson.M{ "$first" : "$des" }, "serial" : bson.M{ "$first" : "$serial" }, "timestamp" : bson.M{ "$firs[详细]
-
golang mongodb upsert
所属栏目:[大数据] 日期:2020-12-16 热度:116
//UpsertPhoneInterface func UpsertPhoneInterface (_query,update bson.M) (err error ) { query := func (c *mgo.Collection) error { _ , err = c. Upsert (_query,update) return err } getCollection ( "perfInterface" ,query) return } q := bson.M{[详细]
-
注意事项:golang 编译的 glibc 版本
所属栏目:[大数据] 日期:2020-12-16 热度:103
在编译 golang 程序的时候,一定要保证线上机和测试机上的glibc版本一致。 centos 64位下,具体目录在 /lib64/libc.so.6[详细]
-
我学xingo golang服务器之-Unity3d c# 协议api分解
所属栏目:[大数据] 日期:2020-12-16 热度:89
上一节, http://www.jb51.cc/article/p-yxckckpk-bqm.html 学习了xingo服务器处理客户端api的流程, 这一节进行服务器下发数据,u3d进行分解处理: unity3d c# protobuf生成: protogen -i :msg .proto -o :msg .cs -ns :Pb pause 如果你把protoc.exe和proto[详细]
-
我学xingo golang服务器之-Unity3d c#多玩家同屏出生过程和AI处
所属栏目:[大数据] 日期:2020-12-16 热度:135
上一节 我学xingo golang服务器之-Unity3d c# 协议api分解 http://www.jb51.cc/article/p-fwxgrkoq-bqm.html 分析了xingo_demo_unity3d 对服务器协议的处理流程 处理过程中涉及到了unity3d 多玩家同步和出生过程,这块我觉得有xingo项目写的有点难度,所以提[详细]
-
来自NSQ的golang编码范式
所属栏目:[大数据] 日期:2020-12-16 热度:185
Managing Goroutines It’s surprisingly easy to start goroutines. Unfortunately,it isn’t quite as easy to orchestrate their cleanup. Avoiding deadlocks is also challenging. Most often this boils down to an ordering problem,where a goroutin[详细]
-
Golang教程:(二十)并发介绍
所属栏目:[大数据] 日期:2020-12-16 热度:57
原文:https://golangbot.com/concurrency/ 欢迎来到Golang系列教程的第二十篇。 Go是并发语言,而不是并行语言。 在讨论Go并发性之前,我们必须首先了解什么是并发,以及并发与并行的区别。 什么是并发 并发(concurrency)是指一次处理大量事情的能力。让[详细]
