![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
十一. Go 常用三方库与常用工具
文章平均质量分 77
定时器, 日志, 限流, redis, gorm, amqp...
苹果香蕉西红柿
这个作者很懒,什么都没留下…
展开
-
gorm_generate根据表生成对应结构体
在使用新版本的gorm时底层有一个Migrator迁移器,内部提供了一些用来创建,修改,删除,以及获取数据库的元数据信息的方法CurrentDatabase:用于获取当前数据库的名称TableType:用于获取一个表的类型,是普通表还是视图,返回一个TableType类型的值ColumnTypes : 用于获取表字段信息的GetIndexes : 用户获取索引信息的AddColumn:用于给一个表添加一个列,根据你定义的结构体的字段来生成对应的类型和约束。原创 2023-12-20 15:05:18 · 637 阅读 · 0 评论 -
go 进阶 数据处理(内部包含一些针对数据处理的三方库介绍)
市场使用角度:目前来看,使用较广的库是 go-linq,根据 Github 上的数据,它有超过 4K 的 star 和大量的 fork,可以说是一个比较成熟和受欢迎的库。原创 2023-05-24 17:37:35 · 253 阅读 · 1 评论 -
go 进阶 三方库之 joda-time
目录一. joda-time 基础解释二. joda-time常用API简介三. 其它三方时间库一. joda-time 基础解释joda-time 是一个流行的 Java 日期和时间处理库,在 Golang 中有对应的实现 go-joda. 它提供了对日期、时间、时区、周期、持续时间、格式化和解析等多个时间操作的支持,设计得非常全面和庞大。它的优点如下:支持多种日历系统,包括 ISO、Julian、Coptic 和 Ethiopic 等。提供了丰富的日期和时间操作方法,并提供了更加灵原创 2023-05-24 09:53:47 · 366 阅读 · 0 评论 -
go 进阶 三方库之 go-resty
Resty 对象方法New() *Resty: 创建一个默认配置的 Resty 对象。NewWithClient(client *http.Client) *Resty: 创建一个自定义配置的 Resty 对象,并使用指定的 http.Client 客户端对象。R() *Request: 创建一个 Request 对象,并使用 Resty 对象的默认配置设置。SetDebug(on bool) *Resty: 设置是否启用调试模式。如果启用,则会在控制台输出详细的请求和响应信息。原创 2023-05-24 09:23:52 · 2529 阅读 · 0 评论 -
go 进阶 三方库之 EasJson 与标准库json
【代码】go 进阶 三方库之 EasJson 与标准库json。原创 2023-05-24 09:23:31 · 183 阅读 · 0 评论 -
go validator数据校验示例
解释: 后端接收参数时通常需要对参数进行校验,例如验证某个数据是否为空,数据格式是否正确等,常见验证方式通过if,switch-case等流程语句进行验证,比较繁琐,可以通过validator框架进行验证参考别人写的博客参考上方博客创建的工具类package validatorimport ( "fmt" "github.com/go-playground/locales/zh" ut "github.com/go-playground/universal-translator" "g.原创 2023-05-16 10:48:10 · 253 阅读 · 0 评论 -
go 进阶 三方库之 go-redis
注意有个v8版本,是有方式上不太一样。1.提供获取锁脚本, 释放锁脚本,原创 2023-05-12 09:09:47 · 1271 阅读 · 0 评论 -
go 进阶 三方库之 streadway/amqp
通过streadway/amqp实现mq业务流程通过amqp下的Dial()函数,连接mq服务端,获取到连接拿到连接后调用连接下的Channel()函数,会返回一个核心通道,后续的操作都是基于这个通道完成的断开重连怎么实现在调用amqp下的Dial()函数拿到mq连接后,Connection下存在一个NotifyBlocked()方法与NotifyClose()方法。原创 2023-05-11 16:09:41 · 580 阅读 · 4 评论 -
go 进阶 三方库之 gorm
【代码】go 进阶 三方库之 gorm。原创 2023-05-11 16:09:17 · 656 阅读 · 0 评论 -
go 进阶 三方库之 jwt-go
根据JWT Token中是否存在Signature签名又将JWT分为两类: 不使用Signature签名的JWT称为nonsecure JWT未经过签名,不安全的JWT,其header部分也没有指定签名算法, 使用了Signature签名的通过签名保证jwt不能被他人随意篡改,我们又称为JWS。原创 2023-05-11 16:08:55 · 1133 阅读 · 0 评论 -
go 进阶 三方库之 nacos 配置中心
【代码】go 进阶 三方库之 nacos 配置中心。原创 2023-05-11 16:07:49 · 494 阅读 · 0 评论 -
go 进阶 三方库之 go版本 ThreadLocal
【代码】go 进阶 三方库之 go版本 ThreadLocal。原创 2023-05-11 16:07:31 · 277 阅读 · 0 评论 -
go 进阶 限流相关: 二. hystrix-go 类库
3.如何去上报这些事件,包括成功的失败的?1.熔断器何时开启,如何开启?4.如何对这些上报事件进行处理。5.令牌的逻辑是什么?2.熔断器何时关闭?原创 2023-05-08 09:29:50 · 546 阅读 · 0 评论 -
go 进阶 限流相关: 一. time/rate限速器
golang/rate包中,牺牲一点加锁的性能,实时计算产生的令牌数。这种实现的好处: 对令牌的计算可以非常精确。而对比于定时往桶里添加令牌的实现,虽然在请求可以使用原子计算,不上锁实现。但对于令牌的计算来说,是比较不准确的,需要根据定时器的精度来保证。而精度越小,cpu亲缘性问题就越明显。个人觉得虽然加锁的实现,对性能有一部分影响,但是令牌桶都是在计算,所以性能不会有很大的问题,加锁时间不长。原创 2023-05-08 09:30:08 · 1586 阅读 · 1 评论 -
go 进阶 十. 日志文件处理
先了解一下zpa中的日志级别划分。原创 2023-05-08 09:28:52 · 403 阅读 · 0 评论 -
go 进阶 九. 定时器
参考博客。原创 2023-05-06 09:41:14 · 731 阅读 · 1 评论