Go 语言怎么使用 zap 日志库?
01 介绍我们在之前的文章中介绍过标准库 log 包的使用方式,它虽然使用方便,但是它支持的功能比较简单。本文我们介绍 uber 开源的日志库 zap,首先使用 Gin 框架构建一个 Web 应用,然后通过在该 Web 应用中记录日志,来介绍 zap 的使用方式。最后,我们再使用开源的日志切割库 lumberjack,进行日志切割。使用 Gin 构建一个 Web 应用本文重点不是介绍 gin 框....
Go 语言 errgroup 库的使用方式和实现原理
介绍在 Go 语言中,我们可以使用 errgroup 库处理 goroutine 中的错误。errgroup 库最近更新了,新增支持限制并发数量的功能。本文我们介绍 errgroup 库的使用方式和实现原理。使用方式errgroup 库使用非常简单,我们通过三个简单示例代码,分别介绍三种使用方式。基础使用func main() { eg := errgroup.Group{} eg.Go(f...
Golang语言使用 jwt-go 库生成和解析 token
01介绍JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种方式,用于在各方之间安全地将信息作为 JSON 对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对对 JWT 进行签名。尽管可以对 JWT 进行加密以提供双方之间的保密性,但我们将重点关注已签名的令牌(signe....
Go语言微服务框架 - 5.GORM库的适配sqlmock的单元测试
随着GORM库的引入,我们在数据库持久化上已经有了解决方案。但上一篇我们使用的GORM过于简单,应用到实际的项目中局限性很大。 与此同时,我们也缺乏一个有效的手段来验证自己编写的相关代码。如果依靠连接到真实的MySQL去验证功能,那成本实在太高。那么,这里我们就引入一个经典的sqlmock框架,并配合对数据库相关...
Go 语言使用标准库 sync 包的 mutex 互斥锁解决数据静态
01介绍在 Go 语言中,Go 标准库 sync 包中有一个单独的 Mutex 类型,它支持互斥锁模式。Mutex 类型的 Lock 方法用于获取 token,Unlock 方法用于释放 token。定义的 Mutex 类型的变量称为互斥量,用来保护共享变量(临界区)。被互斥量保护的变量声明应该紧接在互斥量的声明之后。为了防止未执行 Unlock 方法,通常在 Lock 方法后,使用 defer....

Go语言微服务框架 - 4.初识GORM库
数据持久化是服务的必要特性,最常见的组件就是关系型数据库MySQL。而在Go语言里,GORM已经成了对接MySQL事实上的标准,那么也就不去横向对比其它库了。 GORM库是一个很强大、但同时也是一个非常复杂的工具。为了支持复杂的SQL语言,它比之前的配置文件加载工具github.com/spf13/viper要复杂不少。今天,...
Go语言微服务框架 - 3.日志库的选型与引入
日志是一个框架的重要组成部分,那今天我们一起来看看这部分。 衡量日志库有多个指标,我们今天重点关注两点:简单易用 与 高性能。简单易用是一个日志库能被广泛使用的必要条件,而高性能则是企业级的日志库非常重要的衡量点,也能在源码层面对我们有一定的启发。 v0.3.0:日志库的选型与引入 项目链接 https://g...
Go 使用标准库 net/rpc 包
01RPC 是什么?RPC 是远程过程调用(Remote Procedure Call),用于调用方和被调用方两个进程间的交互,并且提供类似本地方法调用的形式。RPC 广泛用于在分布式系统中不同节点间的通信。02Go 语言 RPC 标准库在 Go 语言的标准库中,也提供了一个简单的 RPC 实现(net/rpc)。rpc 包提供对对象在网络或其他 I/O 连接中导出方法的访问。服务器端注册对象,....
Go 使用标准库 net/http 包构建服务器
01概念在 Go 语言中,使用标准库 net/http 可以很方便的构建服务器,只要调用 ListenAndServe 函数,并传入参数IP地址与端口组成的字符串和处理器(handler)即可。func ListenAndServe(addr string, handler Handler) error如果 IP 地址与端口组成的字符串参数为空字符串,那么服务器默认使用 80 端口进行网络连接,....
Go 使用标准库 sql 包和三方数据库驱动包操作 MySQL
01概念在 Go 语言中,sql 包提供了数据库的通用接口,并且 sql 包必须与数据库驱动包一起使用,Go 标准库中没有数据库驱动包,需要使用第三方的数据库驱动包。需要注意的是,写代码时不要忘记导入三方数据库驱动包。sql 包的 Open 函数打开一个通过一个数据库驱动名称(driverName)和一个数据库驱动数据源名称(dataSourceName)指定的数据库,该数据源名称至少包含数据库....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Go更多库相关
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注