• 置顶

    链路追踪学习

    题记​ 首先明确以下一段话:早期单体架构下,链路追踪也存在,比如用简单日志框架实现(Log4j),现在分布式系统下,变成分布式链路追踪,一般采用opentracing标准,实现方式有jaeger等。 ​ 本文所说的链路追踪都是指分布式链路追踪(或者叫做全链路追踪)。 什么是链路追踪​ 链路追踪是指在分布式系统中,将一次请求的处理过程进行记录并聚合展示的一种方法。 目的是将一次分布式请求的调用...
  • Golang编码规范

    题记本文主要用来规范自己编写Golang的代码,感谢本人实习的mentor孙晨辉(万声音乐),让我对编码规范有了新的认识。 正文函数和方法命名 函数和方法名称中通常可以省略以下内容: 输入和输出的类型(当没有冲突时) 方法的接收器的类型 输入或输出是否为指针 对于函数,不要重复包的名称。 对于方法,不要重复方法接收器的名称。 不要重复作为参数传递的变量的名称。 不要重复返回值的名...
  • Gemini CLI教程

    题记​ 本文旨在教会用户macos下安装Gemini CLi。 1、检查node安装情况1node -v #输出版本号就代表可以,如果没有输出版本号就前往node js官网:https://nodejs.org/zh-cn 2、安装Gemini CLI1npm install -g @google/gemini-cli 3、创建ProjectID首先进入这个界面网址,点击创建项目,然...
  • SQL的Count函数优化

    题记​ 产品发现内部资源平台查询资源列表接口很慢,然后我开始排查问题,使用Jaeger(阿里云Golang Agent)查询发现select count(*)一行sql语句运行了300ms,然后EXPLAIN语句发现全表扫描,然后开始查资料优化count(*)的速度,最后写了这篇文章。 什么是count()函数​ count()是一个聚合函数,函数的参数不仅可以是字段名,也可以是其他任意表达...
  • RDB设计规约

    怎么才能很好的避免低级故障?以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。 在我们对数据库技术方案设计的时候,我们是否有自己的设计理念或者原则,还是更多的依据自己的直觉去设计,是否曾经懊悔线上发生过的一次低级故障,可能稍微注意点就可以避免,是否想过怎么才能很好的避免,下面规范的价值正是我们工作的检查清单,需要我们不断从错误中积累有效经验来指导未来的工作。以...
  • 数据库锁问题

    题记​ 今天在公司遇见了一个数据库锁问题,复盘一下。 问题与原因​ 测试环境下更新Spine接口:biz层使用ExecTx调用data层的一些函数用于数据库操作,其中更新文件时间戳的代码如下所示,其他都是使用c.db.DB(ctx)来实现数据库操作,这可能会出现更新文件时间戳操作使用的 gorm.DB 实例和其他的不同,导致事务不一致的问题。(我就遇见了执行到更新文件时间戳函数卡住的情况,锁...
  • cursor教程

    什么是cursor​ cursor是一款全新的智能IDE,通过与AI的无缝集成而增强。cursor基于VSCode构建,易于学习,但可以使您极具生产力。 安装cursor官方地址:Cursor - The AI Code Editor cursor pro破解工具:cursor-free-everyday、curs0r-release(需要结合PoolHub) cursor界面导览 curs...
  • 偶发性接口响应超时排查

    题记本文只是记录排查偶发性接口响应超时问题的思路和步骤。 1、确认现象和收集信息 明确超时定义: 是TCP连接超时?SSL握手超时?还是HTTP请求/响应数据传输超时? 具体超时阈值是多少(客户端/服务端配置)? 定位发生范围: 特定用户/地域/设备? 特定时间段(高峰?定时任务?)? 特定请求参数或数据特征? 收集关键日志: 客户端日志:记录...
1236