实战Go内存泄露

最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。关于Go的内存泄露有这么一句话不知道你听过没有:10次内存泄露,有9次是goroutine泄露。我所解决的问题,也是goroutine泄露导致的内存泄露,所以这篇文章主要介绍Go程序的goroutine泄露,掌握了如何定位和解决goroutine泄露,就掌握了内存泄露的大部分场景。借鉴饶全成的...阅读全文

2019-05-18 11:09:22 一起学Golang
阅读:12115 评论:1

Go框架解析-gin

前言 今天是我golang框架阅读系列第三篇文章,今天我们主要看看gin的框架执行流程。关于golang框架生命周期源码阅读下面是我的计划: 计划 状态 Go框架解析-beego done Go框架解析-iris done Go框架解析-gin done Go框架解析-echo doing Go框架解析-revel doing Go框架解析-Martini doing 再完成各个golang框架生命周期的解析之后,我会计划对这几个框架的优略进行一个系列分析,由于业内大多都是性能分析的比较多,我可...阅读全文

2019-07-11 17:32:33 TIGERB
阅读:2417 评论:0

Golang 如何正确使用 Context

视频信息 How to correctly use package context by Jack Lindamood at Golang UK Conf. 2017 视频:www.youtube.com/watch?v=-_B… 博文:medium.com/@cep21/how-… 为什么需要 Context 每一个长请求都应该有个超时限制 需要在调用中传递这个超时 比如开始处理请求的时候我们说是 3 秒钟超时 那么在函数调用中间,这个超时还剩多少时间了? 需要在什么地方存储这个信息,这样请求...阅读全文

2019年09月01日 衣舞晨风
阅读:17814 评论:0

深入理解Golang之http server

前言 对于Golang来说,实现一个简单的http server非常容易,只需要短短几行代码。同时有了协程的加持,Go实现的http server能够取得非常优秀的性能。这篇文章将会对go标准库net/http实现http服务的原理进行较为深入的探究,以此来学习了解网络编程的常见范式以及设计思路。 HTTP服务 基于HTTP构建的网络应用包括两个端,即客户端(Client)和服务端(Server)。两个端的交互行为包括从客户端发出request、服务端接受request进行处理并返回respon...阅读全文

2019年11月17日 Turling_hu
阅读:12406 评论:2

Micro In Action(三):调用服务

![](https://s1.ax1x.com/2020/03/14/8l7qSA.png) > 本文作者:Che Dan > > 原文链接:<https://medium.com/@dche423/micro-in-action-call-service-cn-5ac679194636> 本文是[Micro](https://micro.mu/)系列文章的第三篇。我们将以实际开发微服务为主线,顺带解析相关功能。从最基本的话题开始,逐步转到高级特性。 今天将讨论如何调用服务...阅读全文

2020-03-14 23:01:22 polaris
阅读:2476 评论:1

Go存储怎么写?深度解析etcd存储设计

Go存储怎么写?深度解析etcd存储设计 导读:etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,在CoreOS和Kubernetes等开源项目中广泛使用。本文作者深入分析了etcd存储模块的设计和实现,对于深入学习Go存储有很大参考作用。 作者 codedump codedump.info 博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读 codedump 更多文章。 在前面已经分析了Raft算法原理、etcd raft库的实现,接着就可以看etcd如何使用raft实现...阅读全文

2020-11-04 09:57:28 高可用架构
阅读:637 评论:0