摘要:上一篇说了以命令行方式执行了pprof,这次我们学习以web方式运行pprof. 下面看个例子: var datas []string func main() { go func() { for { log.Printf("len:%d",Add("gwyy")) time.Sleep(time.S 阅读全文
posted @ 2020-10-13 10:44 梁天 阅读(27) 评论(0) 推荐(0) 编辑
摘要:pprof是go语言内置 的分析性能,分析数据的工具,pprof开启后,每隔一段时间(10ms)就会收集下当前的堆栈信息,获取格格函数占用的CPU以及内存资源;最后通过对这些采样数据进行分析,形成一个性能分析报告。pprof用 profile.proto 读取分析样本的集合,并声称可视化报告,以帮助 阅读全文
posted @ 2020-10-13 10:28 梁天 阅读(87) 评论(0) 推荐(0) 编辑
摘要:名词解释: QPS(Query per second 每秒处理完的请求数) 什么是wrk 看下他GitHub上的介绍:https://github.com/wg/wrk wrk is a modern HTTP benchmarking tool capable of generating sign 阅读全文
posted @ 2020-10-12 11:40 梁天 阅读(46) 评论(0) 推荐(0) 编辑
摘要:最近一直在看k8s, 买了个ecs打算安装个k8s玩玩。众所周知,k8s分为 master 节点和node节点。如果完整安装需要好几台服务器,但是k8s官方有提供个人学习,使用的minikube安装,今天我们也是用此工具来快速搭建我们的k8s环境。 点击可跳转官服文档查看 minikube 安装:  阅读全文
posted @ 2020-09-18 23:22 梁天 阅读(142) 评论(0) 推荐(0) 编辑
摘要:最近一直在写go, switch说实话用的不算多。但是今天用了下发现go的switch可真不太一样啊。 无需break func main() { i := 0 switch i { case 0: fmt.Println("0000000000") fmt.Println("0") case 1: 阅读全文
posted @ 2020-09-14 23:13 梁天 阅读(96) 评论(0) 推荐(0) 编辑
摘要:golang中的select语句格式如下 select { case <-ch1: // 如果从 ch1 信道成功接收数据,则执行该分支代码 case ch2 <- 1: // 如果成功向 ch2 信道成功发送数据,则执行该分支代码 default: // 如果上面都没有成功,则进入 default 阅读全文
posted @ 2020-09-07 23:49 梁天 阅读(221) 评论(0) 推荐(0) 编辑
摘要:将Go的main包拆分为多个文件的写法和普通包是完全一致的,其使用规则也相同。如编写main包结构如下: main | main.go | show.go 在main.go中编写了main函数,main函数调用了在show中定义的函数或变量。到此和一般的go包都一致。但是当运行go run mian 阅读全文
posted @ 2020-08-24 00:35 梁天 阅读(62) 评论(0) 推荐(0) 编辑
摘要:阅读 NSQ 源码时,看到NSQ使用了 go-svc 来启动nsq的相关程序,使得在程序退出的时候可以做一些释放资源等收尾工作。 使用起来非常简单,定义一个Service,实现其 svc.Service中的接口即可。 简单使用: func main() { prg := &program{} //运 阅读全文
posted @ 2020-08-24 00:25 梁天 阅读(60) 评论(0) 推荐(0) 编辑
摘要:go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性, 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 2 每个包可以拥有多个init函数 3 包的每个源文件也可以拥有多个init函数 4 同一个包中多个init函数的执行 阅读全文
posted @ 2020-08-10 14:06 梁天 阅读(153) 评论(0) 推荐(0) 编辑
摘要:简介: es包地址:https://github.com/olivere/elastic/ 这个版本被广泛使用,我们也用这个。 注意:es版本不同,要导入不同的包。6.0版本导入“github.com/olivere/elastic” 连接es: var host = "http://xxx.com 阅读全文
posted @ 2020-07-21 17:32 梁天 阅读(480) 评论(0) 推荐(0) 编辑
摘要:简介 json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。但是Go语言是个强类型语言,对格式要求极其严格而JSON格式虽然也有类型,但是并不稳定,Go语言在解析来源为非强类型语言时比如PHP等序列化的JSON 阅读全文
posted @ 2020-07-15 15:17 梁天 阅读(116) 评论(0) 推荐(0) 编辑
摘要:golang操作redis主要有两个库,go-redis和redigo。两者操作都比较简单,区别上redigo更像一个client执行各种操作都是通过Do函数去做的,redis-go对函数的封装更好,相比之下redigo操作redis显得有些繁琐。但是官方更推荐redigo,所以项目中我使用了red 阅读全文
posted @ 2020-07-12 17:40 梁天 阅读(408) 评论(0) 推荐(0) 编辑
摘要:import "github.com/Shopify/sarama" saram 使用纯go语言编写。用于处理Apache Kafka(0.8及更高版本)的纯Go客户端库. 它包括一个易于生成和使用消息的高级API,以及一个在高级API不足时控制线路上字节的低级API. 内嵌提供了高级API的用法示 阅读全文
posted @ 2020-07-08 14:10 梁天 阅读(638) 评论(0) 推荐(0) 编辑
摘要:Go语言是个强类型语言。也就是说Go对类型要求严格,不同类型不能进行赋值操作。指针也是具有明确类型的对象,进行严格类型检查。下面的代码会产生编译错误 : package main import ( "fmt" ) func main() { u := uint32(32) i := int32(1) 阅读全文
posted @ 2020-06-15 21:23 梁天 阅读(86) 评论(0) 推荐(0) 编辑
摘要:本篇文章为go的启蒙文章,非常适合新手阅读,本文文笔生动形象,配图有趣可爱,实为下饭上厕所无聊打发时间的良心文字,欢迎大家阅读+评论。本文大部分文档来源于go官网教程:https://tour.golang.org/list 。也有一些第三方资料。 Packages (包) 所有的go程序都是由包组 阅读全文
posted @ 2020-06-09 13:58 梁天 阅读(118) 评论(0) 推荐(0) 编辑