文章 2023-10-21 来自:开发者社区

Go 语言怎么使用 zap 日志库?

01 介绍我们在之前的文章中介绍过标准库 log 包的使用方式,它虽然使用方便,但是它支持的功能比较简单。本文我们介绍 uber 开源的日志库 zap,首先使用 Gin 框架构建一个 Web 应用,然后通过在该 Web 应用中记录日志,来介绍 zap 的使用方式。最后,我们再使用开源的日志切割库 lumberjack,进行日志切割。使用 Gin 构建一个 Web 应用本文重点不是介绍 gin 框....

文章 2023-10-21 来自:开发者社区

Go 语言 errgroup 库的使用方式和实现原理

介绍在 Go 语言中,我们可以使用 errgroup 库处理 goroutine 中的错误。errgroup 库最近更新了,新增支持限制并发数量的功能。本文我们介绍 errgroup 库的使用方式和实现原理。使用方式errgroup 库使用非常简单,我们通过三个简单示例代码,分别介绍三种使用方式。基础使用func main() { eg := errgroup.Group{} eg.Go(f...

文章 2023-10-20 来自:开发者社区

Golang语言使用 jwt-go 库生成和解析 token

01介绍JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种方式,用于在各方之间安全地将信息作为 JSON 对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对对 JWT 进行签名。尽管可以对 JWT 进行加密以提供双方之间的保密性,但我们将重点关注已签名的令牌(signe....

文章 2023-10-20 来自:开发者社区

Go语言微服务框架 - 5.GORM库的适配sqlmock的单元测试

随着GORM库的引入,我们在数据库持久化上已经有了解决方案。但上一篇我们使用的GORM过于简单,应用到实际的项目中局限性很大。 与此同时,我们也缺乏一个有效的手段来验证自己编写的相关代码。如果依靠连接到真实的MySQL去验证功能,那成本实在太高。那么,这里我们就引入一个经典的sqlmock框架,并配合对数据库相关...

文章 2023-10-20 来自:开发者社区

Go 语言使用标准库 sync 包的 mutex 互斥锁解决数据静态

01介绍在 Go 语言中,Go 标准库 sync 包中有一个单独的 Mutex 类型,它支持互斥锁模式。Mutex 类型的 Lock 方法用于获取 token,Unlock 方法用于释放 token。定义的 Mutex 类型的变量称为互斥量,用来保护共享变量(临界区)。被互斥量保护的变量声明应该紧接在互斥量的声明之后。为了防止未执行 Unlock 方法,通常在 Lock 方法后,使用 defer....

Go 语言使用标准库 sync 包的 mutex 互斥锁解决数据静态
文章 2023-10-20 来自:开发者社区

Go语言微服务框架 - 4.初识GORM库

数据持久化是服务的必要特性,最常见的组件就是关系型数据库MySQL。而在Go语言里,GORM已经成了对接MySQL事实上的标准,那么也就不去横向对比其它库了。 GORM库是一个很强大、但同时也是一个非常复杂的工具。为了支持复杂的SQL语言,它比之前的配置文件加载工具github.com/spf13/viper要复杂不少。今天,...

文章 2023-10-20 来自:开发者社区

Go语言微服务框架 - 3.日志库的选型与引入

日志是一个框架的重要组成部分,那今天我们一起来看看这部分。 衡量日志库有多个指标,我们今天重点关注两点:简单易用 与 高性能。简单易用是一个日志库能被广泛使用的必要条件,而高性能则是企业级的日志库非常重要的衡量点,也能在源码层面对我们有一定的启发。 v0.3.0:日志库的选型与引入 项目链接 https://g...

文章 2023-10-20 来自:开发者社区

Go 使用标准库 net/rpc 包

01RPC 是什么?RPC 是远程过程调用(Remote Procedure Call),用于调用方和被调用方两个进程间的交互,并且提供类似本地方法调用的形式。RPC 广泛用于在分布式系统中不同节点间的通信。02Go 语言 RPC 标准库在 Go 语言的标准库中,也提供了一个简单的 RPC 实现(net/rpc)。rpc 包提供对对象在网络或其他 I/O 连接中导出方法的访问。服务器端注册对象,....

文章 2023-10-20 来自:开发者社区

Go 使用标准库 net/http 包构建服务器

01概念在 Go 语言中,使用标准库 net/http 可以很方便的构建服务器,只要调用 ListenAndServe 函数,并传入参数IP地址与端口组成的字符串和处理器(handler)即可。func ListenAndServe(addr string, handler Handler) error如果 IP 地址与端口组成的字符串参数为空字符串,那么服务器默认使用 80 端口进行网络连接,....

文章 2023-10-20 来自:开发者社区

Go 使用标准库 sql 包和三方数据库驱动包操作 MySQL

01概念在 Go 语言中,sql 包提供了数据库的通用接口,并且 sql 包必须与数据库驱动包一起使用,Go 标准库中没有数据库驱动包,需要使用第三方的数据库驱动包。需要注意的是,写代码时不要忘记导入三方数据库驱动包。sql 包的 Open 函数打开一个通过一个数据库驱动名称(driverName)和一个数据库驱动数据源名称(dataSourceName)指定的数据库,该数据源名称至少包含数据库....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等