1

库地址 原理 好处 例子 可以直接mock某个结构的私有方法
区别 信号量(Semaphore)和限速器(Rate Limiter)都是用于控制并发访问共享资源的同步原语,但它们之间存在一些关键区别。 目的:信号量(Semaphore)...
报错 处理办法 这个错误是因为你尝试将数据库中的 NULL 值直接转换为 Go 中的 string 类型,这是不允许的。为了解决这个问题,你可以使用 sql.NullStri...
背景 生产环境中,调用公司封装的kms服务进行解密,偶报超时错误。但是看接口实际耗时只有100多ms。 一开始怀疑是errgroup中的ctx用错了,导致cancel掉了请求...
存在的意义 业务直接去接kafka或者其他的mq,需要自己处理rebalance场景下的各种极端case,以及一些安全,网络分区问题。 SDK直连kafka的话,会面临消费者...
客户端会将所有的数据包都发送到wireguard-go的虚拟网卡上吗 wireguard-go 是如何创建和绑定网卡的 wireguard-go两个客户端如何通信 wireg...
官方文档 https://protobuf.dev/programming-guides/proto3/[https://protobuf.dev/programming-g...
实现功能 实现http协议转grpc,可以动态加载,新增proto可以实时动态生效 原理探究 业务模块 业务模块需要有一个api的配置文件,二元组,一个是http的path,...
业务场景 原因 底层逻辑
背景 在进行字符串比较的时候,一般用strings.Contains进行比较,但是在某些场景下,传入的字符串会被转义为unicode,这时候也希望能命中,所以,需要将进行比较...
json序列化的转义 当对 JSON 进行序列化操作时(Go 中称为 marshal),根据 JSON 标准的说明,需要对字符串中的以下字符进行转义: 产生的坑 在做卡片消息...
背景 在做机器人发消息安全校验的时候,我们把生成的sign放到query里面进行传递,会经常性的出现签名错误 签名校验方法:https://open.feishu.cn/do...
升级protobuf的版本以后,如果同一个proto的package存在两个命名相同的文件,则会panic,所以,最好就是用google.golang.org/protobu...
安装插件 配置文件 块级删除 跳转 easyMotion使用的坑
代码整洁实践经验 1.用多态代替if/else或者switch/case2.不要出现重复代码3.函数行为通过名字表达,不要做隐藏的额外事情4.一个函数只做一件事,而且应该保持...
在设置进程内缓存的时候,除了过期时间,我们还需要限制缓存总大小的数量,防止出现OOM。所以,我们需要观测设置一定数量的缓存,内存的增长情况,以下是代码: