首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JackieZheng
掘友等级
后端搬砖
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
109
文章 108
沸点 1
赞
109
返回
|
搜索文章
最新
热门
Go组件学习——database/sql数据库连接池你用对了吗
这里maxOpenConns设置为10,足够这里的两次查询使用了。 之所以阻塞,是因为拿不到连接,可用的连接一直被上一次查询占用了。 除了maxOpenConns=1以外,这里多了rows遍历的代码。 显然,这里第二次查询并没有阻塞,而是拿到了连接并查到了结果。 所以,这里ro…
Go组件学习——cron定时器
转到Go已经将近三个月,写业务代码又找到了属于Go的条件反射了。 其实,没有最好的语言,只有最适合的。 前面《Go语言学习》系列主要介绍了一些Go的基础知识和相较于Java的一些新特性。后续如果有相关的体会和新的还会继续更新。 从这篇开始,开始学习Go的一些工具类库和开源组件,…
Go组件学习——gorm四步带你搞定DB增删改查
Object-Relationl Mapping, 它的作用是映射数据库和对象之间的关系,方便我们在实现数据库操作的时候不用去写复杂的sql语句,把对数据库的操作上升到对于对象的操作。 gorm就是基于Go语言实现的ORM库。 类似于Java生态里大家听到过的Mybatis、H…
Go组件学习——手写连接池并没有那么简单
前段时间在看gorm,发现gorm是复用database/sql的连接池。 于是翻了下database/sql的数据库连接池的代码实现,看完代码,好像也不是很复杂,但是总觉得理解不够深刻,于是萌生了自己想写个连接池的想法。(最后也验证了,看源码的理解确实不够深刻,一看就会,一做…
Go语言学习——channel的死锁其实没那么复杂
协程(goroutine)算是Go的一大新特性,也正是这个大杀器让Go为很多路人驻足欣赏,让信徒们为之欢呼津津乐道。 协程的使用也很简单,在Go中使用关键字“go“后面跟上要执行的函数即表示新启动一个协程中执行功能代码。 可以简单理解为,Go中的协程就是一种更轻、支持更高并发的…
Go语言学习——彻底弄懂return和defer的微妙关系
前面在函数篇里介绍了Go语言的函数是支持多返回值的。 只要在函数体内,对返回值赋值,最后加上return就可以返回所有的返回值。 最近在写代码的时候经常遇到在return后,还要在defer里面做一些收尾工作,比如事务的提交或回滚。所以想弄清楚这个return和defer到底是…
Golang三种方式实现超时退出
前段时间发现线上有个服务接口,总是间歇性告警,有时候一天两三次,有时候一天都没有。 告警的逻辑是在一个接口中异步调用了另一个HTTP接口,这个HTTP接口调用出现超时。但是我去问了负责这个HTTP接口的同学,人家说他们的接口相应都是毫秒级别,还截图监控了,有图有真相,我还能说啥…
一次线上接口超时的排查过程
昨天下午,收到一个504的告警,显然这是一个超时告警。当时由于手头有其他事情,没在意,就只是瞄了一眼,但是引起告警的方法很熟悉,是我写的,第一反应有点诧异。 诧异之后,继续处理手头的工作。 一小时过后,又收到同样的告警,显然不是偶尔,肯定是哪儿出问题了,于是开始排查。 报警的接…
终于跑通分布式事务框架tcc-transaction的示例项目
前段时间在看项目代码的时候,发现有些接口的流程比较长,在各个服务里面都有通过数据库事务保证数据的一致性,但是在上游的controller层并没有对一致性做保证。 网上查了下,还没找到基于Go开源的比较成熟的分布式事务框架。 于是,准备看看之前隔壁部门大佬写的tcc-transa…
Go语言学习——如何实现一个过滤器
做业务的时候我们经常要使用过滤器或者拦截器(听这口音就是从Java过来的)。常见的场景如一个HTTP请求,需要经过鉴权过滤器、白名单校验过滤、参数验证过滤器等重重关卡最终拿到数据。 Java使用过滤器很简单。XML时代,只要添加一个过滤器配置再新建一个实现了Filter接口的x…
下一页
个人成就
文章被点赞
292
文章被阅读
91,592
掘力值
2,009
关注了
13
关注者
165
收藏集
1
关注标签
24
加入于
2017-11-16