Golang 中的异步任务队列

在一些常见的场景中,如果遇到了某些请求特别耗时间,为了不影响其它用户的请求以及节约服务器资源,我们通常会考虑使用异步任务队列去解决,这样可以快速地处理请求、只返回给用户任务创建结果,等待任务完成之后,我们再告知用户任务的完成情况。

对于 Golang,我们可以通过 Worker pool 异步处理任务,在大多数情况下,如果不在意数据丢失以及服务器性能足够,我们就没有必要考虑别的方案,毕竟这样实现非常简单。

接下来我们先来说说如何用 Worker pool 解决异步任务的问题。

阅读全文

OKR 实践

最近看完了《OKR 工作法》以及《这就是 OKR》,再加上团队实践 OKR 有小段时间了,趁着热度还在,赶紧总结下。

顺便简单评价下这两本书,《OKR 工作法》整体不错,用茶叶商的故事娓娓道来,内容也很有指导性,而《这就是 OKR》整本书最有价值的地方就是它的附录资源,书的内容粗读即可。

阅读全文

Golang validator 详解

在 Web 应用中,有一块内容非常重要,却很容易被我们忽略:参数验证,忘了之后常常会给我们造成大量的处理错误问题,甚至直接造成应用崩溃。之前我在 你的团队需要更好的 API 文档流程 提到过,Joi 的验证非常好用,可以帮助我们验证客户端用户的上传数据以及返回数据,而在 Golang 中,我们该如何做呢?

阅读全文

如何优雅重加载 Web 应用

但凡在各种环境中,尤其是生产环境中部署过应用的,比如更新应用或者配置,就会了解到,应用的重启或者升级多少都会影响用户访问,那这种影响会到什么程度呢?

影响用户的重启

表面上看,轻则是页面不能正常加载,让用户以为是网络不好(事实上,这也经常成为服务器出问题的背锅原因,有的 APP 则直接在前端硬编码报错信息,所有的错误统一显示:网络出错了,请重试)。
重则影响用户的支付流程,导致用户放弃支付,更严重的则是用户支付过程中处理数据不当的话,就会丢失数据,导致对账失败。

阅读全文

如何理性地失败:黑匣子思维

《黑匣子思维》这本书是很早之前就看过一部分的,不过忘了什么原因没看下去。这个月把这本书重新拿出来看的时候,好后悔,当初为什么不把它看完。这些天看完后,觉得我之前在 谈谈服务稳定性 提到的一些内容与观点,相比之下都过于粗浅了。

相信你在看到黑匣子这几个字的时候,会联想起飞机,我们知道,在航空业中,每架飞机都会装两个几乎无法被破坏的黑匣子:一个记录着发往机上电子系统的操作指令,另一个记录着驾驶舱内的对话与声音,一旦事故发生,黑匣子记录的数据就会被取出分析,事故原因也就一目了然。

这跟我们今天说的内容,有什么关系?现在,不妨让我们从一次作者在开篇提到的手术事故说起(以下内容涉及剧透)。

阅读全文

MongoDB 的复制集

MongoDB 如今还是很受欢迎的,毕竟它简单易用,方便拓展等等,然后它的一些高级功能不知道你有没有了解过,比如它的复制集。

为何需要复制集

假如经历过业务量的慢慢增长,就能感受到数据库拓展过程中的一些痛苦,以及,复制集的重要性了。毕竟单台机器的性能总是有限的,等业务量到达一定程度,就需要考虑使用多台来分散读写压力,常见的业务场景中,我们面对的都是读多写少的场景,因此,可以在相当的一段时间里,只考虑分散读的压力

阅读全文

善用工具,节约时间

这个月似乎忙得晕头转向了,一到该写的日子,什么灵感都没,于是拖了一天,最后打算总结下自己的一些 DevOps 技巧以及比较好用的工具。

工具列表

Gitlab CI

这是必须的内容,每个我经手的项目,必须要有 CI 功能,其中会选择性加入代码静态检查以及单元测试等步骤,另外就是编译打包 Docker 镜像步骤,方便之后的部署。

阅读全文

谈谈 996.ICU:原来我们可以这样抗争

最近这一两周里,996.ICU 成了热门,我也不免随了这股大流,毕竟,这是切身相关的。

阅读全文

权限引擎之 casbin

上次介绍了权限系统的设计后,这次我们来说说如何实现系统的实现。

阅读全文

系统权限的设计

今天,我们来说说系统设计中的权限设计(其实是为了之后写实践做铺垫 🌝)。

前言

一般来说,我们在设计与人有交互的系统时,如果涉及到多用户能对同类资源进行操作的时候,就会有区分权限的需求了。

阅读全文

为何C++静态链接库顺序很重要

自从换了新环境,逐渐接触了一些机器学习相关库的过程中,不可避免的开始捡回 C/C++ 的一些知识,之后也会写一些 C/C++ 相关的文章。

一个编译错误

今天,我们从一个编译错误说起,之后再复习相关的知识:

阅读全文

《大江东去》读后感

历经一个月左右,断断续续把这三部曲看完了,这部小说是之前挺火的电视剧《大江大河》的原著小说,作者阿耐,那时候看了介绍之后,本想看电视剧,但是想到看电视剧太费时间,不如看小说了,而且还能感受到原著的原汁原味,而且小说有三部,电视剧貌似只拍了第一部。

注意:以下内容会有剧透,谨慎观看。

阅读全文

Golang 中的跨语言调用

今天,我们来说说 cgo。

前言

在有些特殊的场景下,我们会有这样的困扰:

    阅读全文

    听说你年会上又没中奖?

    快回家过年了,伴随着各家公司年会的进行,最让人期待的莫过于抽奖环节了,伴随着台上老板宣布哪个哪个人中奖的时候,相信大部分人还是属于跟我差不多的类型:『中奖绝缘体』。

    阅读全文

    2018 年总结

    2018 年总结

    时间过得真快,一眨眼,2018 年要过去了,而 2017 年的总结 仿佛近在昨日,总体来说,今年感觉是成长有限。

    先罗列几个数字:

    • 28 篇博客
    • 50 本书
    • 0 个女朋友
    • 6 处旅游地点
    • 3 个轮子

    显然,被 2018 年给打脸了,肚子没减掉,来了深圳之后,见爸妈的机会也少了,博客内容受欢迎不如预期,主动认识的朋友也有限,女朋友与股市一样:没希望。

    好了,脸打完,还是得回顾下自己这一年到底瞎干了啥。

    阅读全文