加载中
golang 源码分析:juju/ratelimit

https://github.com/juju/ratelimit 是一个基于令牌桶算法的限流器:令牌桶就是想象有一个固定大小的桶,系统会以恒定速率向桶中放 Token,桶满则暂时不放。漏桶算法和令牌桶算法的主要区别在...

golang 源码分析:uber-go/ratelimit

https://github.com/uber-go/ratelimit 是一个漏桶限流器的实现, rl := ratelimit.New(100) // per second prev := time.Now()for i := 0; i < 10; i++ { now := rl.Take() fmt.Println(i,...

golang源码分析:time/rate

这是golang 源码中实现的限流器,是基于令牌桶算法的: 官方地址: golang.org/x/time/rate github地址:github.com/golang/time/rate r := rate.Every(100 * time.Millisecond) limit := rat...

golang源码分析之geoip2-golang

https://github.com/oschwald/geoip2-golang用来解析 [GeoLite2](http://dev.maxmind.com/geoip/geoip2/geolite2/) and [GeoIP2](http://www.maxmind.com/en/geolocation_landing)数据库的一...

mac 上学习k8s系列(12)minio

Minio (https://github.com/minio/minio)提供对象存储服务,兼容了 AWS S3 存储协议,用于非结构化的数据存。非结构化对象,比如图像,音、视频,日志文件,备份镜像…等等管理不方便,不定...

mac 上学习k8s系列(9)nginx-ingress lua

本篇将在mac 上学习k8s系列(8)external auth的基础上基于nginx-ingress 的access_by_lua_block +redis 来实现一个全局的rate limiter:用nginx lua连接redis,用redis计数来做集群粒度的r...

mac 上学习k8s系列(10)nginx-ingress lua连redis 失败排出过程

在学习mac 上学习k8s系列(9)nginx-ingress lua的时候遇到了一个问题nginx-ingress lua连接redis失败,这里涉及到了多个复杂系统间的通信:k8s,nginx ,lua,redis ,golang的后台服务 ,技...

mac 上学习k8s系列(7)basic auth

在mac 上学习k8s系列(2)安装ingress-nginx这一讲的基础上我们先启动一个service,里面仅仅包含一个简单的pod kind: PodapiVersion: v1metadata: name: apple-app labels: app: applespec: ...

mac 上学习k8s系列(8)external auth

上一讲介绍了basic oauth 后mac 上学习k8s系列(7)basic auth,这一讲介绍如何使用外部的basic auth服务,这里使用一个http://httpbin.org的服务。 我们可以测试下这个服务 % curl -i http...

golang源码分析:map

map 是由 key-value 对组成的;key 只会出现一次.主要的数据结构有两种:哈希查找表(Hash table)、搜索树(Search tree)。哈希查找表一般会存在“碰撞”的问题,就是说不同的 key 被哈希到...

golang源码分析:mac安装gdb

首先安装工具gdb,可以 brew install gdb 也可以源码安装 http://ftp.gnu.org/gnu/gdb/ tar -zxvf gdb-8.0.1.tar.gzcd gdb-8.0.1./configuremkdir buildcd build../configuremakemake insta...

golang源码分析:go 汇编

还是上一篇中的例子来分析go的汇编 可以看到 >6 a:=1 b:=2 这两行代码对应的汇编代码为: >0x10a6d01 <main.main+33> movq $0x1,0x38(%rsp) ││ 0x10a6d0a <main.main+42> ......

golang源码分析:爬虫colly(part I)

Colly 是一个采用 Go 语言编写的 Web 爬虫框架: https://github.com/gocolly/colly http://go-colly.org/docs/ 可以非常方便地写一个爬虫,下面是源码中的一个例子 package main import ( ...

golang源码分析:爬虫colly(part II)

这里紧接着golang源码分析:爬虫colly(part I)继续讲解,我们看下colly最核心的文件colly.go H,colly.go 中首先定义了,爬虫开发中用到的hook回调的函数类型 type CollectorOption func(*C...

golang源码分析:singleflight

singleflight通常被用来做防止缓存击穿,代码位置在https://github.com/golang/groupcache/tree/master/singleflight,在详细介绍代码内容之前,我先区分下雪崩、穿透和击穿: 雪崩 雪崩就是...

golang源码分析:推荐系统gorse(part I)

con gorse使纯go实现的一套分布式推荐系统解决方案: https://github.com/zhenghaoz/gorse,包含了master,worker和server三个部分。 整套模型中包含了三个实体:用户、物料、反馈 type Use...

Webpack VS Vite 原理剖析

Webpack的重要性就不必说了,在前端构建领域,webpack是最热门的工具之一,无论你用啥框架,走的哪条前端路线,都得会webpack。 而且在跳槽面试的时候,尤其前端高级岗位的面试,你会发现面试...

golang pprof label 使用

trace vs pprof go tool trace 和go tool pprof 两个工具的使用方法类似,但是两者的原理和侧重点不同: 1,go tool trace 更侧重于记录分析采样时间内运行时系统具体干了什么。原理是监听g...

golang freecache源码分析

go的cache有很多实现,其中freecache号称零GC开销,是怎么做到的呢?我们从源码来进行分析,freecache的地址为: https://github.com/coocood/freecache go在一定程度消除了堆和栈的区别,因...

echo 解析客户端IP的坑clientIp

某些场景我们需要获取客户端的ip,比如埋点、反作弊、审计等等 ip := net.ParseIP(ctx.ClientIP())ip = ip.To4()ipInt32 := binary.BigEndian.Uint32(ip) 上面这段代码乍看没有问题,但是实际...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部