Skip to content

城市岛民 Posts

protoc: exec: “protoc-min-version”: executable file not found in $PATH

My local environment use gvm to support working with different go version.

I check the $GOPATH and see where the package(protoc-min-version) is installed.

Then switch to the right version.My system go version is 1.17 and I have a gvm go version 1.17, there some mistake. When I switch to go 1.16, the error is gone.

api接口幂等

什么是幂等 多次调用同一方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 接口幂等能解决什么问题 前端重复提交 接口超时重试 消息重复消费 解决方案 token机制: 客户端从服务端获取token,然后发送指定请求,服务端将生成的token放入redis 客户端携带token去做业务请求,服务端判断token是否在redis中,不在则拒绝,在则删除token(或者给打个标识),并进行业务处理 该token是全局唯一的,可以使用一个全局的id生成服务来生成(snowflake算法的一个变种) 基于mysql的实现 利用mysql的唯一索引,只有在负载比较小的情况下,才合适 mysql的悲观锁 `select * from xxx where id = ‘xx’ for update; 需要注意使用主键或者唯一索引,否则锁表。…