想象一下,在 HTTP 服务器上有一个巨大的 ZIP 文件,你想知道里面的内容。你不知道压缩包内是否有你需要的东西,而且你不想下载整个文件。是否可以像执行 unzip -l https://example.com/giant.zip 的操作来查看压缩包的内容呢? 我要晨读

已有579人晨读

snowflake ID 算法是 twitter 使用的唯一 ID 生成算法,为了满足 Twitter 每秒上万条消息的请求,使每条消息有唯一、有一定顺序的 ID ,且支持分布式生成。 我要晨读

已有615人晨读

在Go的惯用法中,返回值不是整型等常用返回值类型,而是用了一个 error(interface类型)。 我要晨读

已有827人晨读

因为节目集数量较大,不能一次性的读入内存,因此每次读出一部分记录写入ES。ORM使用的是beego。为了提高性能使用了协程,其中读MySQL的部分最大开启20个协程,ES写入部分开启了15个协程(因为ES分片设置的问题,5个协程和15个协程性能映像不大)。 我要晨读

已有491人晨读

今天我想和大家分享 Go 语言一些非常实用的技巧,用于编码和解码 JSON 文档。Go 语言的 encoding/json 包有一些有趣的特性,帮助我们轻松地解析 JSON 文档。你可以轻松地将大多数实际应用中的 JSON 转换为带有 Go 语言结构体标签的接口或者是 Marshaler 和 Unmarshaler 接口。 我要晨读

已有602人晨读

对于我这类主要使用 Linux 的人来说,我对于偶尔不得不去应付 Windows 下的问题感到十分的痛苦。这句话在我写我们的 Smart Agent™ 的时候显得格外正确,它能同时跑在 Linux 和 Windows 上,并且会为了我们的日志管理及监控软件去深入探究这两个系统的底层相关问题。 我要晨读

已有558人晨读

大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦。Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,那么defer、return、返回值、panic 之间的执行顺序是怎么样的呢,下面我们就一点一点来揭开它的神秘面纱!话不多说了,来一起看看介绍吧。 我要晨读

已有582人晨读

背景:服务需要高频发出GET请求,然后我们封装的是 golang 的net/http 库, 因为开源的比如req 和gorequsts 都是封装的net/http ,所以我们还是选用原生(req 使用不当也会掉坑里)。我们的场景是多协程从chan 中取任务,并发get 请求,然后设置超时,设置代理,完了。我们知道net/http 是自带了连接池的,能自动回收连接,但是,发现连接暴涨,起了1万个连接。 我要晨读

已有1114人晨读

大多数的 Go 程序员都知道和喜欢用 go test,这个测试工具来自于 Go 官方的 gc 工具链。(想要执行测试代码)这个命令可能是最简单的了,而且还能做得很漂亮。 我要晨读

已有1442人晨读

Kubernetes如今风靡一时,所有主要的云服务提供商都将其作为部署云原生应用的解决方案。Kubernetes有哪些显著的特性和工具优势,让企业开始接受它?本文作者给出了系统的梳理。 我要晨读

已有614人晨读

context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作 我要晨读

已有1736人晨读

这些令人惊叹的特性没有浮于表面,它们可以为你节省大量的工作。它们还可以使软件开发更加愉快。 我要晨读

已有709人晨读

在Go中,接口是一组方法签名。当一个类型为接口中的所有方法提供定义时,它被称为实现该接口。它与oop非常相似。接口指定类型应具有的方法,类型决定如何实现这些方法。 我要晨读  相关阅读: 网页链接 

已有1383人晨读

连接池在编程中并不少见,链接数据库,redis等操作都需要连接池,否则就会出现并发问题,如果每次操作都建立一条新的链接将会大大消耗资源,笔者也是在使用thrift-Clinet链接Service端使用的时候出现了并发问题,然后找到了一个通用的连接池的库在这里分享给大家. 我要晨读

已有640人晨读

Genhash 是一种地理编码,由 Gustavo Niemeyer 发明的。它是一种分级的数据结构,把空间划分为网格。Genhash 属于空间填充曲线中的 Z 阶曲线(Z-order curve)的实际应用。 我要晨读

已有868人晨读

写这个系列的目的不是为了列出 Golang 编程语言的调试器的所有特性。如果你想看这些内容,可以看下 Delve。在这篇文章里我们试着去探索下调试器通常是怎样工作的,怎么在 Linux 上完成一个基本的调试,Linux 上比较关心 Golang 的功能,比如 goroutine 。 我要晨读

已有732人晨读

支持多 MySQL 连接 支持多 mongo 连接 支持多 redis 连接 采用 zap 日志记录 采用 toml 配置文件 采用 glide 管理依赖包 支持 gomail 邮件发送 支持爬虫模拟登录 我要晨读

已有690人晨读