golang

Go

如何升级基础架构

162 0

个人习惯,项目中使用的基础架构都会保持同步更新升级,比如jdk,golang,vue,viewui,spring cloud等等。开源项目的升级都会解决原有版本的问题,比较大的版本升级,也会带来很大的性能方面的提升。比如Spring Cloud中用WebClient代替Feign,使用ReactiveBalancer,go版本的更新会带来编译速度提升,编译后可执行文件变小,内存资源占用率更低等等。 基础架构升级,是不是只是修改相关项目的版本号呢?的确,当小版本升级的时候,有时候就是这样,基本修改一下版本号

Go

2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理

48 0

2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的? 福哥答案2021-03-12: runtime/pprof:采集程序(非 Server)的运行数据进行分析。net/http/pprof:采集 HTTP Server 的运行时数据进行分析。 日志用logrus,海量日志用kafka。 这块不太熟,所以写的简单,实在抱歉。本文来自:51CTO博客感谢作者:福大大查看原文:2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情

Go

leetcode331 验证二叉树的前序序列化 golang

35 0

331. 验证二叉树的前序序列化 解题思路 对于一个合法的二叉树,其前序序列应该有以下特征 root,left,right // todo 画图 那么我们就可以先把root取出来,然后分别对left和right进行递归判断。不过这里存在一个问题,就是我们不知道left和right的长度。那么我们就在递归函数里进行判断,如果是 # 则长度为1,依次递归判断。如果是不合法的则返回-1首先把字符串按照逗号,进行切割 进行递归判断 如果为空,不合法 如果为# 返回1 否则 依次递归遍历。代码 func isVal

Go

聊聊golang的DDD项目结构

59 0

序 本文主要研究一下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

Go

手撸golang GO与微服务 Saga模式之2

44 0

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

Go

golang里的变量问题

48 0

我们在使用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) }上面的输

Go

Go context机制

43 0

1 什么是Context最近在公司分析gRPC源码,proto文件生成的代码,接口函数第一个参数统一是ctx context.Context接口,公司不少同事都不了解这样设计的出发点是什么,其实我也不了解其背后的原理。今天趁着妮妲台风妹子正面登陆深圳,全市停工、停课、停业,在家休息找了一些资料研究把玩一把。Context通常被译作上下文,它是一个比较抽象的概念。在公司技术讨论时也经常会提到上下文。一般理解为程序单元的一个运行状态、现场、快照,而翻译中上下又很好地诠释了其本质,上下上下则是存在上下层的传递,

Go

go实现安全并发map读写

113 0

参考 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