首页
学习
活动
专区
工具
TVP
发布

大猪的笔记

专栏成员
288
文章
367999
阅读量
25
订阅数
深入理解 Go HTTP 客户端配置:从 Time Wait 问题到解决方案
最近,我在项目中发现查询 InfluxDB 的模块出现了大量的 TIME_WAIT 状态。
超级大猪
2024-01-19
5010
go: 字符串format时使用命名参数(占位符)
在python中,可以在format的时候对占位符命名。这在参数非常多的时候,且顺序不定时非常明确。 例如:
超级大猪
2021-12-24
2.7K0
go: GC时写屏障与栈的引用变化
关于三色收集和屏障技术的文章已经很多。先总结一下背景知识: 1. go使用混合屏障。删除屏障:假设A--ref-->B,ref断开时会对B染色。插入屏障:假设GC时,有新的引用C--ref2-->E,E也会被染色。 2. 上面的屏障保护只发生在堆的对象上。因为性能考虑,栈上的引用改变不会引起屏障触发。
超级大猪
2021-01-06
2.2K0
gitignore的正确姿势
最近研究了一下如何写gitignore。 需求,我想把所有项目中的go, mod,yaml, json, text文件包含在项目中,但是不想包含logs,polaris文件夹。在根的gitignore中可以这么写:
超级大猪
2020-12-03
4040
go sarama拾遗:有趣的超时
在sarama进行producer.SendMessage重试的时候,会重新创建brokerProducer,这会重新dial。
超级大猪
2020-11-19
4K1
go: 插件系统
参考文章: https://toutiao.io/posts/adjoci/preview
超级大猪
2020-07-14
4310
容器:namespace文件隔离实现
参考资料: 自己动手写docker-4 https://juejin.im/post/5c2b495af265da6134388142 使用golang理解Linux namespace(四)-clone前的初始化 https://here2say.com/38/
超级大猪
2020-03-27
1.4K0
go:封装io.Reader 实现灵活可扩展的io程序
在go中有一个非常重要的接口io.Reader可以实现这个接口,使得用户可以使用obj.Read(buf)函数操作对象。但通常,需要更进一步,将这个接口进行封装,实现自己的逻辑,使得其拥有较好的扩展性。屏蔽底层的io操作。
超级大猪
2020-02-13
9500
go:文件按行读取
这里有很大的坑坑。记录一下。 参考代码: fi, err := os.Open(originPath) if err != nil { fmt.Printf("Error: %s\n", err) return } defer fi.Close() br := bufio.NewReader(fi) for { line, err := br.ReadString('\n') if err != nil { // fmt.Println(err)
超级大猪
2019-12-12
1.5K0
docker笔记:手工编译docker
4/  在home/docker/docker下,如果没有autogen文件夹,那就建一个。下辖dockerversion/dockerversion.go
超级大猪
2019-11-22
4490
go语言:反射,用字符串调用函数创建结构
go语言可以通过反射来进行函数调用和类的创建,但是go中没有类型工厂,所以在使用前要“丑陋”的先把类型注册一下。 相关示例代码如下(未容错,仅做为示例,不能直接用于产品): 先看用法,免得被吓跑
超级大猪
2019-11-22
3.2K0
grpc使用一览子
然后,要用protobuf把它编译成对应的语言代码。 首先安装protoc,偷个懒,别人早就编译好了。直接用就行。
超级大猪
2019-11-21
7070
xorm使用小结
把xorm工具(https://github.com/go-xorm/cmd/blob/master/README.md ) 可执行放到$PATH下面,然后执行:
超级大猪
2019-11-21
2.5K0
go web: 3 中间件和路由
中间件的本质来看,就是在执行handler的前(后)先执行一个自定义的handler而已。那问题变成,go web中,每个handler是怎么执行的。
超级大猪
2019-11-21
5170
go web: 2 封装日志包log
在web项目中,记日志是非常重要的。所以,我做的第一件事,就是向log包动手。 和Python相比,log包功能上逊色不少,但它给我们提供了基础的构架,让我们能自己稍微封装下。
超级大猪
2019-11-21
1.7K0
go web: 1 创建项目
网上关于建立项目大部分都是使用默认的http.ListenAndServe。然而这是有局限的一种用法。因为默认的http封装,没有办法设置服务器的超时。正确的姿势应该是:
超级大猪
2019-11-21
4360
go语言实现设计模式(三):模版模式
模版模式真的是一个好东西。所谓模版模式,就是说,某几个类中相同的操作和代码提取到父类的一个函数中,并定义相同的操作为抽象函数。由子类来实现。估计我也没表达清楚,下面还是看代码来讲解吧。
超级大猪
2019-11-21
6790
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档