技术博客

访问限制器/限流器

golang 限制API或功能的访问频率,username也不一定是用户名,可以是IP或其它标识 package main import ( "golang.org/x/time/rate" "time" ) var limiter = make(map[string]*rate.Limit

Administrator 发布于 2025-07-25

gin+session

引入依赖 go get github.com/gin-contrib/sessions 注入 var router = gin.Default() store := cookie.NewStore([]byte("password")) //将存储的数据加密后保存在用户的浏览器,这是加密的密钥 st

Administrator 发布于 2025-07-17

Javascript任意地区获取俄罗斯时间

function startTime() { var today = new Date(); var z = today.getTimezoneOffset() //获取GMT和当前时区的差异,单位:分钟 var h = today.getHours(

Administrator 发布于 2025-07-16

cron

golang的定期、定时任务 github: https://github.com/robfig/cron 依赖 go get github.com/robfig/cron 实例 c := cron.New() //用本地时间时区 c := cron.NewWithLocation(time.

Administrator 发布于 2025-03-10

protobuf和gRPC

protobuf(protocol buffer)是google开发的数据序列化协议,特点有高效、轻量级、用来在不同的系统之间交换结构化数据,尤其适合网络通信和存储。pb序列化后是紧凑的二进制格式 gRPC是由google开发的高效远程调用框架。 以下用golang来写gRPC服务 安装pb编绎器

Administrator 发布于 2024-12-29

etcd

还是和zk一样只使用它的分布式锁 嘿嘿..... etcd分布式锁的原理就是新增键值对。 ttl设置5秒并不是最大持有锁5秒;实测效果:如果etcd客户端没有断开连接,也没有执行释放,那么锁会一直持有;因为锁绑定一个租约(lease),租约的时间是设定的ttl时间,租约会自动续期。释放时,会移除le

Administrator 发布于 2024-12-14

zookeeper

我只尝试了分布式锁,至于其它功能,如队列等没有尝试。 在创建包含二级路径的节点时,一级路径必须先创建 集群模式下,在创建节点时,会即时同步到其它follower(observer会稍迟) 经过测试,在不同的电脑中,连不同的IP,只要在一个集群中创建相同节点时,只有一个会成功(可以确保唯一),可以以此

Administrator 发布于 2024-12-04