随笔分类 -  GoGoGo

1 2 3 4 5 ··· 7 下一页
摘要:记一次线上事故排查 具体场景简介: 目前有一个数据同步的场景(Mongodb → ES) 架构模型如下: 遇到的问题: 任务消费到某一时刻,就会hang住,无法继续消费,channel队列满了以后,导致整个同步任务全面停止 可以很明显的看到已经hang住了,并且最后一条日志明确的显示是阻塞在发送任务 阅读全文
posted @ 2022-02-21 16:46 Binb 阅读(396) 评论(0) 推荐(0) 编辑
摘要:go 常用工具链 golint 代码质量检测 可以简单指定文件名或者目录检查代码目录规范 golint 会检测的方面: 变量名规范 变量的声明,像var str string = "test",会有警告,应该var str = "test" 大小写问题,大写导出包的要有注释 x += 1 应该 x+ 阅读全文
posted @ 2021-06-14 16:42 Binb 阅读(466) 评论(0) 推荐(0) 编辑
摘要:go 简单实现heap go有一个线程的heap接口 实现简单的方法即可实现heap container/heap/heap/Interface type Interface interface { sort.Interface Push(x interface{}) // add x as ele 阅读全文
posted @ 2021-06-08 10:00 Binb 阅读(183) 评论(0) 推荐(0) 编辑
摘要:Go编译工具 go build <编译文件> 附加参数 备 注 -v 编译时显示包名 -p n 开启并发编译,默认情况下该值为 CPU 逻辑核数 -a 强制重新构建 -n 打印编译时会用到的所有命令,但不真正执行 -x 打印编译时会用到的所有命令 -race 开启竞态检测 # 无参数模式 $ go 阅读全文
posted @ 2021-06-03 16:08 Binb 阅读(3133) 评论(0) 推荐(0) 编辑
摘要:需要自己实现 MarshalJSON和UnmarshalJSON方法,如果只需要存或者取,实现一个也可 type Date struct { time.Time } func (d *Date) MarshalJSON() ([]byte, error) { return []byte(fmt.Sp 阅读全文
posted @ 2021-03-30 15:51 Binb 阅读(637) 评论(0) 推荐(0) 编辑
摘要:概述 xml 包实现了一个简单的 XML 1.0 语法分析器, 这个分析器能够理解 XML 命名空间。 常量 const ( // 一个普通的 XML 首部,可以用于封装的输出结果。 // 这个首部不会自动被添加到这个包产生的任何输出中, // 提供这个首部只是为了方便。 Header = `<?x 阅读全文
posted @ 2021-01-06 17:06 Binb 阅读(307) 评论(0) 推荐(0) 编辑
摘要:Go代码检修工具集 gofmt Go安装程序中自带了gofmt工具,可以使用它来格式化代码,保持一致的代码风格: $ find . -name "*.go" -not -path "./vendor/*" -not -path ".git/*" | xargs gofmt -s -d gocyclo 阅读全文
posted @ 2020-12-17 15:32 Binb 阅读(571) 评论(0) 推荐(0) 编辑
摘要:Go Exec执行命令 执行命令并获得输出结果 最简单的例子就是运行ls -lah并获得组合在一起的stdout/stderr输出。 func main() { cmd := exec.Command("ls", "-lah") out, err := cmd.CombinedOutput() if 阅读全文
posted @ 2020-12-17 15:21 Binb 阅读(2991) 评论(0) 推荐(0) 编辑
摘要:Go TryLock实现 Go标准库的sync/Mutex、RWMutex实现了sync/Locker接口, 提供了Lock()和UnLock()方法,可以获取锁和释放锁,我们可以方便的使用它来控制我们对共享资源的并发控制上。 但是标准库中的Mutex.Lock的锁被获取后,如果在未释放之前再调用L 阅读全文
posted @ 2020-12-17 15:09 Binb 阅读(1078) 评论(0) 推荐(1) 编辑
摘要:Golang知识点总结 各种类型复制的时候的花费 本节标题也可以叫做“各种类型的值的大小” (the sizes of values of all kinds of types),底层可被不同的值共享的数据的大小未被计算。 下面的表格中一个 word在32bit操作系统中代表4个字节,在64bit操 阅读全文
posted @ 2020-12-16 16:42 Binb 阅读(225) 评论(0) 推荐(0) 编辑
摘要:微服务的反模式和陷阱 本文转自 数据驱动的迁移反模式 Data-Driven Migration AntiPattern 微服务会创建大量小的、分布式的、单一用途的服务,每个服务拥有自己的数据。这种服务和数据耦合支持一个有界的上下文和一个无共享数据的架构,其中,每个服务及其对应的数据是独立一块,完全 阅读全文
posted @ 2020-12-16 16:03 Binb 阅读(379) 评论(0) 推荐(0) 编辑
摘要:Go文件操作大全 介绍 万物皆文件 UNIX 的一个基础设计就是"万物皆文件"(everything is a file)。我们不必知道一个文件到底映射成什么,操作系统的设备驱动抽象成文件。操作系统为设备提供了文件格式的接口。 Go语言中的reader和writer接口也类似。我们只需简单的读写字节 阅读全文
posted @ 2020-12-16 15:09 Binb 阅读(139) 评论(0) 推荐(0) 编辑
摘要:Go编译时变量注入 需求 golang程序在build时自动生成版本信息,使用 ./helloworld –version可以查看版本和build时间 实现原理 使用链接选项-X设置一个二进制文件中可以访问的变量 package main import "fmt" var Version = "No 阅读全文
posted @ 2020-12-16 14:15 Binb 阅读(888) 评论(0) 推荐(0) 编辑
摘要:本文转自鸟窝 获取 goroutineID package main import ( "fmt" "runtime" "strconv" "strings" "sync" ) func GoID() int { var buf [64]byte n := runtime.Stack(buf[:], 阅读全文
posted @ 2020-12-16 14:07 Binb 阅读(137) 评论(0) 推荐(0) 编辑
摘要:Go的交叉编译 转自鸟窝 Go 1.5以前,交叉编译程序还是有一点麻烦的,你需要massive scripts t来编译和宿主机器不同的程序。 正如 comes with support for all architectures built in文章中介绍的, Go 1.5可就简单的多了,你只需设 阅读全文
posted @ 2020-12-16 14:00 Binb 阅读(754) 评论(0) 推荐(0) 编辑
摘要:参透gRPC 本文转自 本文目录如下: 简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python 阅读全文
posted @ 2020-12-15 14:00 Binb 阅读(170) 评论(0) 推荐(0) 编辑
摘要:本文引用自 安装 $ go get -u github.com/golang/mock/gomock $ go install github.com/golang/mock/mockgen 第一步:我们将安装 gomock 第三方库和 mock 代码的生成工具 mockgen。而后者可以大大的节省我 阅读全文
posted @ 2020-12-14 14:53 Binb 阅读(620) 评论(0) 推荐(0) 编辑
摘要:Wire 是啥 Wire 是一个轻巧的Golang依赖注入工具。它由Go Cloud团队开发,通过自动生成代码的方式在编译期完成依赖注入。 依赖注入是保持软件 “低耦合、易维护” 的重要设计准则之一。 此准则被广泛应用在各种开发平台之中,有很多与之相关的优秀工具。 其中最著名的当属 Spring,S 阅读全文
posted @ 2020-12-11 23:01 Binb 阅读(3639) 评论(0) 推荐(1) 编辑
摘要:本文转自 在类 Unix 系统中,我们常常会使用 ps 命令来查看系统当前所运行的进程信息,该命令为我们提供了较大的帮助,能够快速的定位到某些进程的运行情况和状态。 而在 Go 语言中,也有类似的命令工具,那就是 gops[1](Go Process Status)。 gops 是由 Google 阅读全文
posted @ 2020-12-02 21:02 Binb 阅读(1530) 评论(0) 推荐(1) 编辑

1 2 3 4 5 ··· 7 下一页