golang
162
个人习惯,项目中使用的基础架构都会保持同步更新升级,比如jdk,golang,vue,viewui,spring cloud等等。开源项目的升级都会解决原有版本的问题,比较大的版本升级,也会带来很大的性能方面的提升。比如Spring Cloud中用WebClient代替Feign,使用ReactiveBalancer,go版本的更新会带来编译速度提升,编译后可执行文件变小,内存资源占用率更低等等。
基础架构升级,是不是只是修改相关项目的版本号呢?的确,当小版本升级的时候,有时候就是这样,基本修改一下版本号
48
2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的?
福哥答案2021-03-12:
runtime/pprof:采集程序(非 Server)的运行数据进行分析。net/http/pprof:采集 HTTP Server 的运行时数据进行分析。
日志用logrus,海量日志用kafka。
这块不太熟,所以写的简单,实在抱歉。本文来自:51CTO博客感谢作者:福大大查看原文:2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情
35
331. 验证二叉树的前序序列化
解题思路
对于一个合法的二叉树,其前序序列应该有以下特征 root,left,right // todo 画图
那么我们就可以先把root取出来,然后分别对left和right进行递归判断。不过这里存在一个问题,就是我们不知道left和right的长度。那么我们就在递归函数里进行判断,如果是 # 则长度为1,依次递归判断。如果是不合法的则返回-1首先把字符串按照逗号,进行切割
进行递归判断
如果为空,不合法
如果为# 返回1
否则 依次递归遍历。代码
func isVal
59
序
本文主要研究一下golang的DDD项目结构
interfaces
food-app-server/interfaces
interfaces git:(master) tree
.
|____fileupload
| |____fileformat.go
| |____fileupload.go
|____food_handler.go
|____food_handler_test.go
|____handler_setup_test.go
|____login_handler.go
|____lo
44
缘起
最近阅读<<Go微服务实战>> (刘金亮, 2021.1)
本系列笔记拟采用golang练习之
Saga模式saga模式将分布式长事务切分为一系列独立短事务
每个短事务是可通过补偿动作进行撤销的
事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成,
每个Ti都有对应的补偿“Ci”,
当Ti出现问题时Ci用于处理Ti执行带来的问题。可以通
48
我们在使用golang时,是否遇到过以下写法:
package mainimport "fmt"func fn() (string, error) {return "test", fmt.Errorf("test error")
}func main() {name := "main"if name, err := fn(); err != nil {fmt.Println("fn return name = ", name, err)}fmt.Println("name = ", name)
}上面的输
43
1 什么是Context最近在公司分析gRPC源码,proto文件生成的代码,接口函数第一个参数统一是ctx context.Context接口,公司不少同事都不了解这样设计的出发点是什么,其实我也不了解其背后的原理。今天趁着妮妲台风妹子正面登陆深圳,全市停工、停课、停业,在家休息找了一些资料研究把玩一把。Context通常被译作上下文,它是一个比较抽象的概念。在公司技术讨论时也经常会提到上下文。一般理解为程序单元的一个运行状态、现场、快照,而翻译中上下又很好地诠释了其本质,上下上下则是存在上下层的传递,
113
参考
E:\svn\golang\pkg\mod\github.com\i!google-ink\gopay
代码实现
package gopayimport ("encoding/json""encoding/xml""errors""io""sort""strings""sync"
)type BodyMap map[string]interface{}var mu sync.RWMutex// 设置参数
func (bm BodyMap) Set(key string, value interfac