赞了文章2022-07-07
这段时间收到很多朋友发来的信息,说一款api管理服务工具apifox跟我们当时做的yapi很像,最近在全网推广,刚听到这个消息,我还挺意外的,毕竟当时我们做yapi是开源的。今天我闲来无事,下载他们的软件用了用,简直气愤至极。这款软件不仅抄了我们理念, 还做成收费服...
回答了问题2021-12-06
[链接]
发布了文章2021-10-28
线上有一块业务,需要做大量的数据库查询以及编码落盘的任务。数据库查询20分钟左右,大约有2kw条sql被执行。如果可以优化数据库查询的方法,可以节省一笔很大的开销。
回答了问题2021-10-22
prepare 拿到的stmt,关闭了还在用?
回答了问题2021-09-30
正常情况下, str, _ := gredis.Get(email) 返回的是raw 的数据,你需要做个转换。 包里面提供了很多种转换的方式。比如,你存的是数字的话,可以用:
回答了问题2021-09-28
可以使用 c.ShouldBindBodyWith(¶m,binding.JSON) 方法。这个方法,body 会cache 到上下文中,重复绑定不会有问题。
回答了问题2021-02-04
模板的实现在来的路上,再等两年。个人建议,用A方案好一点。
回答了问题2021-02-04
j 的定义会报错,这个定义肯定不对[]byte 类型,在go中是做了base64编码,相应的解码的时候也需要base64解码。
发布了文章2021-02-01
pika 是 360 开源的一个非关系型数据库,可以兼容 Redis 系统的大部分命令。支持主从同步。主要的区别是 pika 支持的数据量不受内存的限制,仅和硬盘大小有关。底层使用了RocksDB 做 KV 数据的存储。
回答了问题2021-01-15
如果是考虑db查询超时,你可以考虑在查询的时候加上timeout 的上下文。这样简单明了,也不会出错。
赞了回答2021-01-15
gorm 所有基于*gorm.DB 方法逻辑在于 表 --> 结构体 映射,获取结果集需要找到对应的表结构,也就是destination(slice/struct)。显而易见,select database() 结果集与表结构无关,你用gorm.DB方法,是无解的。这点,你查阅*gorm.DB.Scan方法源码,会发现它会检...
回答了问题2021-01-12
这么多 if-else, 建议亲用switch 呢。 {代码...}
赞了回答2020-09-21
JWT 确实不可控制,且在到期前无法控制失效(原生方法),但是 JWT 也带来了一些好处,比如分布式会话,当然, Session 也可以实现,但是 JWT 天生就支持。
回答了问题2020-09-10
你可以也写不同的后缀的文件调用对应的方法,编译的时候会自动查找不同的文件编译的。
回答了问题2020-07-30
拿走,不用谢![链接]这个库包含了许多go实现的php方法。
发布了文章2020-06-28
限流器是服务中非常重要的一个组件,在网关设计、微服务、以及普通的后台应用中都比较常见。它可以限制访问服务的频次和速率,防止服务过载,被刷爆。
发布了文章2020-06-28
熔断器像是一个保险丝。当我们依赖的服务出现问题时,可以及时容错。一方面可以减少依赖服务对自身访问的依赖,防止出现雪崩效应;另一方面降低请求频率以方便上游尽快恢复服务。
发布了文章2020-06-28
Gin 是目前应用比较广泛的Golang web 框架。 目前,Github Star 数已经达到了3.8w. 框架的实现非常简单,可定制性非常强,性能也比较好,深受golang开发者的喜爱。Gin 提供了web开发的一些基本功能。如路由,中间件,日志,参数获取等,本文主要从源码的角度分析Gin...
发布了文章2020-06-28
远程过程调用 (Remote Procedure Call,RPC) 是一种计算机通信协议。允许运行再一台计算机的程序调用另一个地址空间的子程序(一般是开放网络种的一台计算机),而程序员就像调用调用本地程序一样,无需额外的做交互编程。RPC 是一种 CS (Client-Server) 架构的模式...
发布了文章2020-06-28
众所周知,在golang 中实现的 http client 是自带连接池的。当我们做 http 请求时,极有可能就是复用了之前建立的 tcp 连接。那这个连接池是如何实现的,今天我们一起来探究。