聊一聊,Golang “相对”路径问题 我要晨读
连接池在编程中并不少见,链接数据库,redis等操作都需要连接池,否则就会出现并发问题,如果每次操作都建立一条新的链接将会大大消耗资源,笔者也是在使用thrift-Clinet链接Service端使用的时候出现了并发问题,然后找到了一个通用的连接池的库在这里分享给大家. 我要晨读
Genhash 是一种地理编码,由 Gustavo Niemeyer 发明的。它是一种分级的数据结构,把空间划分为网格。Genhash 属于空间填充曲线中的 Z 阶曲线(Z-order curve)的实际应用。 我要晨读
写这个系列的目的不是为了列出 Golang 编程语言的调试器的所有特性。如果你想看这些内容,可以看下 Delve。在这篇文章里我们试着去探索下调试器通常是怎样工作的,怎么在 Linux 上完成一个基本的调试,Linux 上比较关心 Golang 的功能,比如 goroutine 。 我要晨读
Kubernetes HA 1.9 高可用集群,本地离线部署 我要晨读
我是怎么阅读kubernetes源代码的?为什么要阅读代码?怎么阅读k8s源代码? 我要晨读
支持多 MySQL 连接 支持多 mongo 连接 支持多 redis 连接 采用 zap 日志记录 采用 toml 配置文件 采用 glide 管理依赖包 支持 gomail 邮件发送 支持爬虫模拟登录 我要晨读
select 语句用于在多个发送/接收信道操作中进行选择。select 语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,select 会随机地选取其中之一执行。该语法与 switch 类似,所不同的是,这里的每个 case 语句都是信道操作。我们好好看一些代码来加深理解吧。 我要晨读
Go1.9 出来后 6 个多月的时间,Go1.10 就被发布。新版本带来大大小小的变化(发行说明),但是我想谈谈有关 net/http 包的改变。1.10 版本支持在 HTTPS(commit) 上的代理,而在原来它只能通过使用普通的(未加密)HTTP 来和代理进行沟通。接下来让我们来看看它是否真的可以工作。 我要晨读
缓冲信道和工作池(Buffered Channels and Worker Pools) 我要晨读
Reflect 反射包有2个重要的类型,分别通过Typeof()和ValueOf()返回。 分别在源码包里的reflect包中的type.go和value.go 我要晨读
gometalinter-golang代码质量检查分析工具 我要晨读
protobuffer、gRPC、restful gRPC的相互转化 我要晨读
按照惯例,第一篇博文总要说点历史,对吧?我作为软件开发人员,主要还是使用 PHP 语言。第一次接触它还是我在高中的时候,跟一个朋友一起开发一个项目。我们想为项目建一个网站,正好发现一个用 PHP 语言,代码写得非常整齐,并且预打包的解决方案。那个时候,我完全不懂这些代码是干嘛的,也没有花时间去弄懂它。多年之后,我再次与 PHP 相遇。在我进入大学的前 6 个月(我想大约 7 年前),PHP 成了我主要关注的语言之一。两年前,我第一次经人介绍了解到 Go 语言。 我要晨读
golang的httpserver优雅重启 我要晨读
Go 语言发展史及史上最全 Go 语言知识图谱! 我要晨读
前面docker的基本概念和一些核心原理都看的差不多了,那么现在该关注一下具体的生产环境的使用方法了。 我要晨读
Go 中的并发性是以 goroutine(独立活动)和 channel(用于通信)的形式实现的。处理 goroutine 时,程序员需要小心翼翼地避免泄露。如果最终永远堵塞在 I/O 上(例如 channel 通信),或者陷入死循环,那么 goroutine 会发生泄露。即使是阻塞的 goroutine,也会消耗资源,因此,程序可能会使用比实际需要更多的内存,或者最终耗尽内存,从而导致崩溃。 我要晨读
Go 的标准实现里 goroutine 是无主的。concurrent.UnboundedExecutor 的目标就是把 ownership 的概念加到 goroutine 上。通过把启动的goroutine都挂在一个executor上,从而可以跟踪这一组goroutine的存活状况。当需要退出的时候,可以把这些个goroutine通过context cancel的方式退出。 我要晨读