golang

Go

手撸golang GO与微服务 Saga模式之9 小结/gitee源码

69 0

手撸golang GO与微服务 Saga模式之9 小结/gitee源码缘起最近阅读<<Go微服务实战>> (刘金亮, 2021.1)本系列笔记拟采用golang练习之Saga模式saga模式将分布式长事务切分为一系列独立短事务每个短事务是可通过补偿动作进行撤销的事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci

Go

Go 中基于 IP 地址的 HTTP 请求限流

196 0

如果你在运行 HTTP 服务并且想对 endpoints 进行限速,你可以使用维护良好的工具,例如 github.com/didip/tollbooth。但是如果你在构建一些非常简单的东西,自己实现并不困难。 我们可以使用已经存在的试验性的 Go 包 x/time/rate。 在本教程中,我们将创建一个基于用户 IP 地址进行速率限制的简单的中间件。 「干净的」HTTP 服务 让我们从构建一个简单的 HTTP 服务开始,该服务具有非常简单的 endpiont。这可能是个非常「重」的 endpoint,因此

Go

手撸golang GO与微服务 Saga模式之8 集成测试

58 0

手撸golang GO与微服务 Saga模式之8 集成测试 缘起 最近阅读<<Go微服务实战>> (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 Saga模式saga模式将分布式长事务切分为一系列独立短事务 每个短事务是可通过补偿动作进行撤销的 事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci

Go

Golang命令go env

857 0

go env :查看终端运行环境PS H:\go_workspace> go env set GO111MODULE=on set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\Administrator\AppData\Local\go-build set GOENV=C:\Users\Administrator\AppData\Roaming\go

Go

手撸golang GO与微服务 Saga模式之8 集成测试

70 0

手撸golang GO与微服务 Saga模式之8 集成测试缘起最近阅读<<Go微服务实战>> (刘金亮, 2021.1)本系列笔记拟采用golang练习之Saga模式saga模式将分布式长事务切分为一系列独立短事务每个短事务是可通过补偿动作进行撤销的事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci”, 当Ti

Go

知乎从Python转为Go,是不是代表Go比Python好?

157 0

众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言就说明 Go 语言比 Python 语言好”完全是一种片面理解。 “语言至上论”是解决不了业务问题的,选 Go 也不行,Java 也不行。 Go 的优势是

Go

关于在C++中结构体与Json字符串互转的问题

361 0

大家有没有在项目中遇到过,将一些预定义的本地结构体转换为Json字符串后,发送到网络中的情形。那我猜想下大家常规的做法:写一个函数,传入结构体的指针,然后在函数中对结构体的每一个成员根据其类型,使用Json类库的赋值方法,直接或间接创建Json子对象,组成一个内存树状结构,最后调用Json类库的方法生成字符串。这样的做法似乎比较完美,工作完成得很好,确实也挑不出什么毛病来,让我们先看看在golang中是怎么做的: type Person struct {Name stringAge int }person

Go

go 反射解析结构体标签tag

187 0

package mainimport (  "fmt" "reflect" )type resume struct { Name string `info:"name" doc:"我的名字"` Sex string `info:"Sex"`}func findTag(str interface{}) { t := reflect.TypeOf(str).Elem()