go服务所有接口请求超时问题

<h2 id="前言">前言</h2> <p>  最近,新接手的一个 5 年前的 go 服务偶发性响应报错 “context deadline exceeded”,一旦有一个请求出现这个问题,所有向这个服务发送的请求都会返回超时错误,包括所有接口,且无法自行恢复,服务进程还存活但已经无法响应任何请求,彻底 hang 住了,只能重启服务。</p>

2026/3/4
阅读更多

奥日桌面宠物开发小记

<h2 id="前言">前言</h2> <p>  还记得八年前通关「奥日与黑暗森林」之后,就想将奥日移植到自己的网页上,作为一个桌面宠物,当时还尝试用 unity 解包工具导出游戏中的资源,后来发现,导出也只是图片,缺少对应的数据,很难直接使用,遂作罢。</p>

2026/3/1
阅读更多

jackc/pgx 查询错误处理避坑

<h2 id="前言">前言</h2> <p>  最近,一个数据查询服务被业务方反馈拿不到数据,但接口响应是成功的,不报错,仔细排查后发现数据查询库用的是 pgx,但 pgx 返回的错误未被处理,导致服务接口没有响应错误。</p>

2025/3/22
阅读更多

天文通预测气象奇观小记

<h2 id="前言">前言</h2> <p>  出去玩看风景很大程度上受天气的影响,所以一般会使用「莉景天气」和「<a href="https://laysky.com/">天文通</a>」提前看下天气预报。莉景天气对于各种气象奇观都有明确的预报概率,但需收费;天文通免费,但只能根据其上的数据自行推断,Shaun 根据网上的一些资料和个人见识总结了一些奇观的出现条件。天气数据都有个准确率的问题,尤其是在高海拔地区,气象多变,数据仅供参考,所以下面列出的条件也都仅供参考,气象奇观出现是幸运,不出现才是正常的。</p>

2025/1/26
阅读更多

LLM 本地部署运行初体验

<h2 id="前言">前言</h2> <p>  最近看到这么一个工具——<strong><a href="https://github.com/dwqs/ollama-ocr">ollama-ocr</a></strong>,利用本地大模型直接进行 OCR,试用了一下,感觉效果还不错,联想之前看到的一个项目——<strong><a href="https://github.com/Byaidu/PDFMathTranslate">PDFMathTranslate</a></strong>,感觉本地大模型已经非常成熟了,部署使用也越来越简单了。</p>

2025/1/12
阅读更多

工作中特殊场景下的黑魔法

<h2 id="前言">前言</h2> <p>  工作中偶尔会遇到一些特殊需求需要解决,这里记录一下。</p>

2024/12/22
阅读更多

HTTP 超时浅见

<h2 id="前言">前言</h2> <p>  最近业务调用方反馈接收到服务连接中断的错误(python requests 请求抛出异常 <code>raise ConnectionError(err, request=request) \n ConnectionError: ('Connection aborted.', BadStatusLine("''",))</code>),但从 golang 服务日志中看,服务应该是正常处理完成并返回了,且抛出异常的时间也基本和服务返回数据的时间一致,即表明在服务响应返回数据的那一刻,请求方同时抛出异常。</p> <p>  这个问题很奇怪,起初拿到一个 case 还无法稳定复现,最初怀疑是网络抖动问题,但后续一直会偶发性出现,直到拿到了一个能稳定复现的 case,深入跟踪排查后才发现与网络问题无关,是服务端框架应用设置不合理的问题。</p>

2024/5/12
阅读更多

关于中学的学习方法

<h2 id="前言">前言</h2> <p>  前些日子,小叔说堂弟的学习有点不太能跟上了,让 Shaun 和堂弟聊聊,回想十几年前, 父亲也是这样找堂哥的,仍记得那年的寒暑假,算是 Shaun 进步最快的一年,也是奠定 Shaun 后续学习方法的一年,现在轮到小叔来找 Shaun ,虽说不能当面聊,指导效果会大打折扣,而且当年堂哥教的具体方法也早已忘记,转化为自己的思想和方法,所以 Shaun 也只能把自己的东西说给堂弟,也算是某种意义上的传承。</p>

2024/3/3
阅读更多

VNSWRR 算法浅解

<h2 id="前言">前言</h2> <p>  最近偶然在公司内网看到一篇文章「负载均衡算法vnswrr改进——从指定位置生成调度序列」。正好 Shaun 一直觉得调度类算法很有意思,就认真看了下,顺便写下自己的一些理解。</p>

2024/2/7
阅读更多

记一次资源不释放的问题

<h2 id="前言">前言</h2> <p>  最近发现一个 GoFrame 服务即使空载 CPU 使用率也很高,每次接受请求后资源没有被释放,一直累积,直到达到报警阈值,人工介入重启服务,于是压测排查了一下。</p>

2023/5/1
阅读更多

社畜三年,风雨兼程

<h2 id="前言">前言</h2> <p>  财富和幸福算是绝大部分人的毕生追求,所以在读这本书时,更容易让人有一种思想上的共鸣,但一个人的成功总是独一无二的,需要依靠天时地利人和,正所谓,学我者生,似我者死,可以学习借鉴成功者的一些思想,但不要想着沿着成功者的路继续走下去就能成功。 ——读『纳瓦尔宝典』</p>

2023/4/2
阅读更多

2021 年小结

<p>  纵观宇宙史,生物史,人之一生,不过沧海一粟,弹指灰飞,若有重来,何必重来。人生一字,莫过于拼,为私欲者有之,为利他者有之,为后代者有之,为权利者有之,为名声者有之,为理想者有之,。。。不拼之人,难存于世,众生皆苦,苦中作乐。  ——鲁迅没说过文集</p>

2022/2/20
阅读更多

M1 个人配置

<h2 id="前言">前言</h2> <p>  记录一下 Shaun 个人的 Mac 装机配置。</p>

2022/2/6
阅读更多

Scala 多线程编程小结

<h2 id="前言">前言</h2> <p>  多线程的执行方式有两种:并发(Concurrent)和并行(Parallel),简单来说,并发就是两个线程轮流在一个 CPU 核上执行,而并行则是两个线程分别在两个 CPU 核上运行。一般而言,程序员无法直接控制线程是并发执行还是并行执行,线程的执行一般由操作系统直接控制,当然程序运行时也可以做简单调度。所以对于一般程序员来说,只需要熟练使用相关语言的多线程编程库即可,至于是并发执行还是并行执行,可能并不是那么重要,只要能达到预期效果就行。</p>

2021/10/10
阅读更多

Google S2 Geometry 浅解

<h2 id="前言">前言</h2> <p>  Google S2 Geometry(以下简称 S2) 是 Google 发明的基于单位球的一种地图投影和空间索引算法,该算法可快速进行覆盖以及邻域计算。更多详见 <a href="https://s2geometry.io/">S2Geometry</a>,<a href="https://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sphere-cells-and-hilbert-curve/">Google’s S2, geometry on the sphere, cells and Hilbert curve</a>,<a href="https://halfrost.com/go_s2_regioncoverer/">halfrost 的空间索引系列文章</a>。虽然使用 S2 已有一年的时间,但确实没有比较系统的看过其源码,这次借着这段空闲时间,将 Shaun 常用的功能系统的看看其具体实现,下文将结合 S2 的 C++,Java,Go 的版本一起看,由于 Java 和 Go 的都算是 C++ 的衍生版,所以以 C++ 为主,捎带写写这三种语言实现上的一些区别,Java 版本时隔 10 年更新了 2.0 版本,喜大普奔。</p>

2021/9/19
阅读更多

K8S 应用开发指北

<h2 id="前言">前言</h2> <p>  在周志明的『凤凰架构』中需要思考这样一个问题,如何用不可靠的部件来构造一个可靠的系统?对于程序员来说,写的代码从某种程度上来说都是不可靠的,但这些代码组成的一些系统却可以是可靠的。程序员对于错误的处理可以分为两派,一派是必须对错误进行处理,以保证系统的稳定行;另一派不对错误进行处理,任由程序 crash,只要有兜底方案,后面再不断完善。这两派并无孰优孰劣,只是两种不同的思维方式,甚至在同一个程序中,有些错误会处理,有些错误不会处理,这都是可能的。K8S 作为事实上的云原生操作系统,其目的就是为了将程序员写的各个程序组装成一个稳定的系统,并减少运维成本。</p>

2021/8/28
阅读更多

OpenGL坐标系统与渲染管线

<h2 id="前言">前言</h2> <p>  图形学中最基础的东西就是坐标系统,三维的东西如何在二维中显示,这中间经历了数次坐标变换,同时坐标变换也贯穿了整个计算机图形渲染管线。</p>

2021/5/28
阅读更多

Scala 学习小结

<h2 id="前言">前言</h2> <p>  最近要改行做大数据相关的东西了,经调研大数据开发的语言还是用 Scala 好,当然 Java 也可以,毕竟都运行在 JVM 上,不过 Java 也有很长时间没用过了,所以对于 Shaun 来说用 Scala 和 Java 的代价是一样的,都需要学习一下,所以决定用对大数据更友好的 Scala。</p>

2021/2/16
阅读更多

2020年小结

<p>  社畜不易,行者多难,披荆斩棘,前路莫测,步履不停。</p>

2021/2/12
阅读更多

Linux服务器运维文档

<h2 id="前言">前言</h2> <p>  记录一下服务器问题排查常用的一些命令。</p>

2021/2/9
阅读更多