写点什么

go

38 人感兴趣 · 280 次引用

  • 最新
  • 推荐

GO database/sql 连接池源码分析

用户头像
Jack Zheng3 小时前

本文档主要针对Go 1.14.12版本的database/sql/sql.go的连接池做源码分析,通过这个篇文档能够了解Go在数据库连接池的一个设计逻辑,重要的流程以及在代码中一些值得借鉴模仿的逻辑及风格。

https://static001.geekbang.org/infoq/d6/d67f2e4fd80ef40bea9565fb6f03cc4a.jpeg?x-oss-process=image/resize,w_416,h_234

ServeMux 详解

用户头像
Rayjun6 月 18 日

在 Go 语言中,创建一个 HTTP 服务很简单,只需要几行代码就可以创建一个可用的 HTTP 服务,这是因为 Go 原生帮我们实现了一个默认的 HTTP 服务,就是 ServeMux,在这篇文章中,我们来详细看一下 ServeMux 的具体实现。

https://static001.geekbang.org/infoq/db/dbfb350e9f2cb92698550f3c1d916d64.jpeg?x-oss-process=image/resize,w_416,h_234

一文读懂云原生 go-zero 微服务框架

用户头像
大蘑菇妞妞儿6 月 18 日

从今年8月7日github开源以来,已经获得了2700+ star的 go-zero 是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

用 Go struct 不能犯的一个低级错误!

用户头像
煎鱼6 月 17 日

微信搜索【脑子进煎鱼了】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycjy/blog 已收录,有我的系列文章、资料和开源 Go 图书。

详解 Go 程序的启动流程,你知道 g0,m0 是什么吗?

用户头像
煎鱼6 月 16 日

微信搜索【脑子进煎鱼了】关注这一只爆肝煎鱼。本文 GitHub github.com/eddycjy/blog 已收录,有我的系列文章、资料和开源 Go 图书。

快来,这里有 23 种设计模式的 Go 语言实现

​​​​​​摘要:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。

https://static001.geekbang.org/infoq/f1/f178792b6816c95b284604b2917dbcb0.jpeg?x-oss-process=image/resize,w_416,h_234

Go 语言学习路线来啦

用户头像
roseduan6 月 15 日

完整的 Go 语言学习路线来啦,可到公众号【roseduan写字的地方】获取文中提到的所有书籍,希望对你有所帮助!

https://static001.geekbang.org/infoq/fd/fdb086e37d46038a4bb429166d7c9804.jpeg?x-oss-process=image/resize,w_416,h_234

Go http 包详解

用户头像
Rayjun6 月 11 日

Go 语言中的 http 包提供了创建 http 服务或者访问 http 服务所需要的能力,不需要额外的依赖。在这篇文章中,我们会介绍这些功能的使用,以及看一下 http 包的设计思路。

一文讲懂服务的优雅重启和更新

用户头像
万俊峰Kevin6 月 7 日

在重启过程中,会有一段时间不能给用户提供正常服务;同时粗鲁关闭服务,也可能会对业务依赖的数据库等状态服务造成污染。 所以我们服务重启或者是重新发布过程中,要做到新旧服务无缝切换,同时可以保障变更服务 零宕机时间!

https://static001.geekbang.org/infoq/ab/ab6a32e68c3fd4734211cd9c19d4d958.jpeg?x-oss-process=image/resize,w_416,h_234

限流算法, 以 Golang 方式

用户头像
hedzr6 月 6 日

在 Web Server、TCP 通讯、API 交互等领域中,速率限制,Rate Limit,一般是面向请求次数、流量等参数进行速率控制。有的时候它又被称作流量控制。

https://static001.geekbang.org/infoq/e0/e00710596b96c7f3f05f44604b783965.jpeg?x-oss-process=image/resize,w_416,h_234

Golang channel 通道

用户头像
escray6 月 5 日

极客时间《Go 语言核心 36 讲》学习笔记 07,图片来自网络

https://static001.geekbang.org/infoq/ac/acd4d64e78e89bb4a90e4853effe4327.jpeg?x-oss-process=image/resize,w_416,h_234

Go 并发编程 -channel 多路复用

用户头像
Rayjun6 月 5 日

在前面两篇文章中,已经详细的介绍了 goroutine 和 channel,它们是 Go 并发编程的基础。今天这篇文章会介绍 Go 并发编程中另一个重要的角色——多路复用。

https://static001.geekbang.org/infoq/cc/cc0461f3a52448cef2e10cd5a61aa736.png?x-oss-process=image/resize,w_416,h_234

Golang Profiling: 关于 pprof

用户头像
hedzr6 月 5 日

性能测试和性能分析从来都不分家。本文中主要介绍 Golang pprof 相关知识。

Golang Testing 概览 - 补充篇

用户头像
hedzr6 月 5 日

补充篇中包含更多测试编写相关内容,以及介绍断言库的运用

Golang Testing 概览 - 深入篇

用户头像
hedzr6 月 5 日

深入篇中讨论用例书写,综合测试、性能测试,testdata组织,等等

自适应微服务治理背后的算法

用户头像
万俊峰Kevin6 月 2 日

本文分析了 go-zero 框架中的指标统计的基础封装、滑动窗口的实现 rollingWindow。 滑动窗口适用于流控中对指标进行计算,同时也可以做到控流。

https://static001.geekbang.org/infoq/6f/6f38ff5602d8ee503a7e65ae642c168b.png?x-oss-process=image/resize,w_416,h_234

自制文件系统 —— 1 什么文件系统

用户头像
奇伢云存储6 月 1 日

和我一起做一个极简的文件系统吧!

https://static001.geekbang.org/infoq/c9/c9edbace83cbb4f69124b99e03df7e42.jpeg?x-oss-process=image/resize,w_416,h_234

Go 并发编程 -channel 连接一切

用户头像
Rayjun5 月 28 日

在上一篇文章中,我们介绍了 Go 并发编程的基础—goroutine,同时也介绍 goroutine 的几种使用方式,但没有说明 goroutine 之间是如何通信的。

Golang 最细节篇— struct{} 空结构体究竟是啥?

用户头像
奇伢云存储5 月 28 日

深度剖析 golang 空结构体的技术原理,深度分析空结构体的各种使用姿势,空结构体和map,slice,chan 结合能碰撞处什么火花?本篇文章带你深入分析。

通用连接池帮你解决资源管理难题

用户头像
万俊峰Kevin5 月 26 日

不管是 sqlx,redis,以及 mongo ,等以后可能要支持的数据源类型,底层的池化处理都是通用的;所以当开发者需要池化处理组件时,go-zero 也是提供的。

懂得取舍才是缓存设计的真谛

用户头像
万俊峰Kevin5 月 24 日

做架构最难的我认为是懂得取舍(trade-off),寻找最佳收益的平衡点是非常考验综合能力的,缓存的设计也是如此。

https://static001.geekbang.org/infoq/a8/a80092ae215086c89a652b18b34aafbb.jpeg?x-oss-process=image/resize,w_416,h_234

Go 并发编程 -goroutine 初体验

用户头像
Rayjun5 月 23 日

说到 Go 语言,被人讨论最多的就是 Go 很擅长做高并发,并且不需要依赖外部的库,语言本身就支持高并发。

Go 并发编程 — 深入浅出 sync.Pool ,围观最全的使用姿势,理解最深刻的原理

用户头像
奇伢云存储5 月 23 日

Go 并发编程 — 深入浅出 sync.Pool ,sync.Pool 本质用途是增加临时对象的重用率,减少 GC 负担;

这一次,彻底搞懂 Go Cond

用户头像
HHFCodeRv5 月 21 日

本篇文章会从源码角度去深入剖析下 sync.Cond。Go 日常开发中 sync.Cond 可能是我们用的较少的控制并发的手段,因为大部分场景下都被 Channel 代替了。还有就是 sync.Cond 使用确实也蛮复杂的。

https://static001.geekbang.org/infoq/82/82a03734d8185c5ba72685dc75ab9e18.png?x-oss-process=image/resize,w_416,h_234

Golang function

用户头像
escray5 月 20 日

极客时间《Go 语言核心 36 讲》学习笔记 07,图片来自网络

Go sync.Pool 浅析

用户头像
HHFCodeRv5 月 20 日

sync.Pool 应该是 Go 里面明星级别的数据结构,有很多优秀的文章都在介绍这个结构,本篇文章简单剖析下 sync.Pool。不过说实话 sync.Pool 并不是我们日常开发中使用频率很高的的并发原语。

进程内缓存助你提高并发能力!

用户头像
万俊峰Kevin5 月 19 日

缓存,设计的初衷是为了减少繁重的IO操作,增加系统并发能力。不管是 CPU多级缓存,page cache,还是我们业务中熟悉的 redis 缓存,本质都是将有限的热点数据存储在一个存取更快的存储介质中。

https://static001.geekbang.org/infoq/2b/2bf02281e83f21056dbaa7d53a7c4d1c.png?x-oss-process=image/resize,w_416,h_234

Golang List, Ring and Map

用户头像
escray5 月 18 日

极客时间《Go 语言核心 36 讲》学习笔记 06,图片来自网络

https://static001.geekbang.org/infoq/21/21c2b3a35de56587e1961e387a52f948.png?x-oss-process=image/resize,w_416,h_234

Golang Array and Slice

用户头像
escray5 月 17 日

极客时间《Go 语言核心 36 讲》学习笔记 06,图片来自网络

https://static001.geekbang.org/infoq/1b/1bc595b9e046439d427668ecb922c028.png?x-oss-process=image/resize,w_416,h_234

缓存数据一致性 - 架构师峰会演讲实录

用户头像
万俊峰Kevin5 月 17 日

当缓存稳定性问题解决之后,一般我们就会面临数据正确性问题,可能会经常遇到『明明数据更新了,为啥还是显示老的呢?』这类问题。这就是我们常说的『缓存数据一致性』问题了,本文我们仔细下分析其产生的原因及应对方法。

go_go资料文章-InfoQ写作平台