go pprof 性能分析

线上运行的基础平台文件管理服务进程出现内存泄露的现象,下图是 `grafana` 针对该服务的监控指标情况,可以发现服务刚起时,内存使用量为 **20M** 左右,经过操作后,内存会稳定在 **300M** 左右,不会持续上升,也不会下降,一开始找不到原因,所以尝试使用一下 golang pprof 性能分析工具分析一下程序到底哪出问题了

设计开发

Select -- 无阻塞读写 channel

通道阻塞在之前的 Go 的并发模型 可以了解到,FAN 流水模型可以多个 Goroutine 读一个 Channel 中的数据(FAN-OUT),或者多个 Chanel 将数据发送到一个 Goroutine 中接收(FAN-IN),但是无论是无缓冲通...

设计开发

Go 并发模型

前言 Go 语言是为并发而生的语言,Go 语言是为数不多的在语言层面实现并发的语言;也正是 Go 语言的并发特性,吸引了全球无数的开发者 并发 (concurrency) 和并行(parallellism)在了解 Go 的并发原理之前,先了解什么是...

设计开发

gin-swagger 自动化构建 API 文档

前后端的交互一般流程是这样的,后端暴露出 API 后,交给前端,前端根据 API 的响应,编写前端页面,一定程度上 API 是前后端的交互桥梁。 API 文档主要要包含: 路由:包括路径参数、请求参数、还是请求体参数 动作:HTTP 请求动作...

技术加油站

高性能的 Go Web 框架 - gin

Gin 的使用安装和更新首次安装,使用 go get命令获取即可。 $ go get github.com/gin-gonic/gin 更新就是常规的 go get -u。 $ go get -u github.com/gin-gonic/gin ...

技术加油站

初学 Redis 作缓存层

项目需求:数据库用的是MySQL,考虑用Redis/memcached做数据库的缓存层。在读DB前,先读缓存层,如果有直接返回,如果没有再读DB,然后写入缓存层并返回。 思路:###缓存读取流程 先到缓存中查数据 ...

技术加油站