随笔分类 -  go

摘要:做个实验,造一个长度一个亿的slice struct 对其内部作出修改,分别使用并发和不用并发,看看时间上会差多少。 不使用协程版本: type Data struct { Id int Info string}func main(){ //channel := make(chan[]Data,10 阅读全文
posted @ 2020-10-10 12:12 埃姆提斯 阅读(149) 评论(0) 推荐(0)
摘要:除了使用特别方便的比如批量插入删除这种一眼就可以看懂sql的之外,其余查询一律使用Raw Scan,非查询一律使用Exec 另外每一条SQL无论是怎样花里胡哨的复制都要在数据层面经过验证。 阅读全文
posted @ 2020-09-25 22:54 埃姆提斯 阅读(389) 评论(0) 推荐(0)
摘要:make proto 生成的pubsub包用的是v1,和v2冲突,必须在make proto 之后查询所有用到 github.com/lileio/pubsub的目录,全都改称 github.com/lileio/pubsub/v2main才可以正常启动 阅读全文
posted @ 2020-09-20 14:28 埃姆提斯 阅读(115) 评论(0) 推荐(0)
摘要:go run main.go up lile.Server(func(g *grpc.Server) { test1.RegisterTest1Server(g, s) reflection.Register(g) ++++++++++++++})加了上面加号那一行,注册反射。效果如下:~/go/b 阅读全文
posted @ 2020-09-19 22:31 埃姆提斯 阅读(235) 评论(0) 推荐(0)
摘要:lile new --name abc/def 打开def go mod 写入 go 1.14replace google.golang.org/grpc v1.32.0 => google.golang.org/grpc v1.28.0replace google.golang.org/api = 阅读全文
posted @ 2020-09-19 15:59 埃姆提斯 阅读(281) 评论(0) 推荐(0)
摘要:有些包错误,直接go mod tidy 会出错。 解决: replace google.golang.org/grpc v1.32.0 => google.golang.org/grpc v1.28.0因为有个naming为找到google.goland.api也是个巨大的坑,猜测是国内go mod 阅读全文
posted @ 2020-09-19 12:34 埃姆提斯 阅读(225) 评论(0) 推荐(0)
摘要:博主探索了一个早上终于学会了使用lile. https://github.com/lileio/lile lile是什么? 简单将就是生成目录用的,主要的功能是生成项目目录和proto的service实现。 博主太菜了,第一次使用go get 和go install 安装包。所以记录一下,let's 阅读全文
posted @ 2020-09-19 12:31 埃姆提斯 阅读(493) 评论(0) 推荐(0)
摘要:一般使用 hystrix.Do来跟踪请求,需要传入请求名,所以正则匹配一下想要自定义配置的请求名。然后这样: 这是go-hystrix下doc.go里面的内容,vender源码到项目的好处之一是可以轻松查看框架资料! Synchronous API Since calling a command a 阅读全文
posted @ 2020-09-03 18:11 埃姆提斯 阅读(182) 评论(0) 推荐(0)
摘要:只有v2版本支持,很简单,官网有 https://gorm.io/ 阅读全文
posted @ 2020-09-02 12:39 埃姆提斯 阅读(2408) 评论(0) 推荐(0)
摘要:对于v2版本在配置连接的时候可以自定义日志,具体官网有。 https://gorm.io/ 阅读全文
posted @ 2020-09-02 12:38 埃姆提斯 阅读(830) 评论(0) 推荐(0)
摘要:需要model实现下面这个接口,比如表名是user,结构体是User。若不实现,User会被映射到users func (User) TableName() string { return "user"} 阅读全文
posted @ 2020-08-31 18:02 埃姆提斯 阅读(2872) 评论(0) 推荐(0)
摘要:gorm v1版本对于复杂sql的支持一般,所以会用到原生。 查询只需要会用gorm的Raw,Scan这两个api 即可,Raw填入sql和参数,Scan映射结果 插入用 Exec这个api 阅读全文
posted @ 2020-08-29 19:44 埃姆提斯 阅读(2376) 评论(0) 推荐(0)
摘要:git config --global key value git config --global --unset key 阅读全文
posted @ 2020-08-27 11:39 埃姆提斯 阅读(907) 评论(0) 推荐(0)
摘要:git clone下来的包里会有makefile 然后make install 就会在$GOPATH/bin下面生成编译好的二进制文件 然后把这个$GOPATH/bin加入到环境变量即可 vim ~/.bashrc export PATH=$GOPATH/bin:$PATH source ~/.ba 阅读全文
posted @ 2020-08-25 12:50 埃姆提斯 阅读(562) 评论(0) 推荐(0)
摘要:每个service和web 都需要在启动项当中配置consul,只需要在program arguments当中写 --registry = consul 如果是网关,则需要在program arguments 中写 --registry=consul api -handler=http 阅读全文
posted @ 2020-08-20 09:50 埃姆提斯 阅读(215) 评论(0) 推荐(0)
摘要:http Body当中的json数据可以通过go gin的ShouldBindJson映射到pb.go中定义的结构体当中. 名称必须对应,比如json为 {expire_time:"2025"} 那么struct中结构体为{ExpireTime string} 阅读全文
posted @ 2020-08-19 15:54 埃姆提斯 阅读(2416) 评论(0) 推荐(0)
摘要:最优雅的解决方案:go mod init 项目名 (这可能就是降维打击吧 没有go mod的同学赶紧去装,从此告别golang反人类的包管理机制 番外:我的ubuntu的goland需要重启一下否则有些包会报红。 我记得需要配置一下goProxy的,很简单的. 再多说几句吧,有了go mod以后,比 阅读全文
posted @ 2020-08-18 16:24 埃姆提斯 阅读(2570) 评论(0) 推荐(0)
摘要:1.proto生成模型的代码protoc --proto_path=. --go_out=. --micro_out=. proto/user/user.proto2.如果你发现你的proto生成的代码里多了protoreflect,你可能就悲剧了,因为有可能项目使用的是旧版proto,没有反射机制 阅读全文
posted @ 2020-08-17 17:31 埃姆提斯 阅读(393) 评论(0) 推荐(0)