静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
在唯览空间的文件安全分享场景中,访客可以针对受限文件发起访问申请,分享者审批通过后,访客获得相应的查看资格。
在开发唯览空间的文件安全分享功能时,我们遇到过一个值得深入讨论的权限设计问题:访客申请查看一份 PDF,文件拥有者审批通过后,是否应该允许访客一直使用这次审批结...
假设一套课程出售给 100 名学员,系统生成 100 个不同的授权码。学员收到课程链接和授权码后,第一次成功访问课程时,将授权码绑定到自己的账号。
在开发在线文件分享功能时,最容易实现的是上传和生成链接,真正复杂的是控制文件后续的访问行为。
它把一台飞牛、或者任何一台常年开着的 Linux 小主机,变成一台网络录像机。摄像头接进来,24 小时录,按时间回放,手机浏览器上随时看。
定时任务的“单例”要沿调用入口看。调度器阻止同一条调度任务重叠,不代表管理后台的手动执行也经过它;进程内去重,更不等于多个副本共用一把锁。准备把后台部署到多个进...
线上一个 Go 服务对接第三方 API 时偶发卡死,排查发现 http.Client 设置了 Timeout,但请求仍然长时间挂起。根本原因是 handler ...
线上服务跑了几天后内存缓慢上涨,pprof 显示 goroutine 数量从启动时的几十个涨到了几万个,而且 GC 之后也不下降。排查后发现是几个后台任务在创建...
在 Go 服务里用 time.Ticker 做定时任务或轮询是很常见的做法,但很多人只在启动时创建 Ticker,却忘了在任务结束或连接断开时调用 Stop。这...
线上服务做优雅重启时,调用 http.Server 的 Shutdown 方法后发现进程仍然卡住不退出,日志显示有大量连接在几十秒后才被释放。这个问题通常出现在...
在 Go 服务端开发中,启动 goroutine 处理异步任务很常见,比如处理 HTTP 请求时发起下游 RPC 调用、写日志、刷新缓存。这些 goroutin...
线上一个 Go 服务调用内部 API 时偶发超时,日志里出现大量 dial tcp: lookup ...: i/o timeout 和 connect: ca...
线上一个用 Go 写的推送网关最近频繁被报警,表现是进程 CPU 占用从平时的 30% 左右一路涨到 200% 以上,重启后能恢复,但跑上两三天又慢慢变高。这个...
线上一个用 Go 写的推送服务在运行十几个小时后内存持续上涨,pprof 显示 goroutine 数量从启动时的几百涨到了十万以上,堆内存也跟着水涨船高。排查...
在 Go 里写 HTTP 服务或后台任务时,context 几乎是绕不开的东西。我们通常用 context.WithTimeout 或者从请求的 *http.R...