Searching We.Love.Privacy.Club

Twts matching #2:
Sort by: Newest, Oldest, Most Relevant

Go 分布式令牌桶限流 + 兜底策略
上篇文章提到固定时间窗口限流无法处理突然请求洪峰情况,本文讲述的令牌桶线路算法则可以比较好的处理此场景。

工作原理
  1. 单位时间按照一定速率匀速的生产 token 放入桶内,直到达到桶容量上限。
  2. 处理请求,每次尝试获取一个或多个令牌,如果拿到则处理请求,失败则拒绝请求。

Image

优缺点

优点

可以有效处理瞬间的突发流量,桶内存量 token 即可作为流量缓冲区平滑处理突发流量。

缺点

实现较为复杂。

代码实现

core/limit/tokenlimit.go

分布式环境下考虑使用 redis 作为桶和令牌的存储容器,采用 lua 脚本实现整个算法流程。

redis lua 脚本


<span class="c1">-- 每秒生成token数量即token生成速度</span>
<span class="kd">local</span> <span class="n">rate</span> <span cl ... ⌘ [Read more](https://gocn.vip/topics/20950)

⤋ Read More

Guess I fit the picture 💎
Guess I fit the picture 💎

![Photo shared by Angwi Tacho on January 09, 2022 tagging @egoofficial, @ohpolly, and @getintothisstyle. May be an image of one or more people, people standing and indoor.](https://bibliogram.hamster.dance/imageproxy?url=https%3A%2F%2Fscontent-lax3-2.cdninstagram.com%2Fv%2Ft51.2885-15%2Fe35%2Fp1080x1080%2F271632448_293213959445184_5456030130822415182_n.jpg%3F_nc_ht%3Dscontent-lax3-2.cdninstagram.com%26_nc_cat%3D100%26_nc_ohc%3DWCr4lvlV7R8AX_ZYsWk%26edm%3DAA … ⌘ Read more

⤋ Read More

Ignite Realtime Blog: Openfire 4.5.6 is released
Openfire 4.5.6 has been released, that addresses an annoying issue that was affecting the earlier 4.5.5 release. We’ve updated the bundled log4j library to version 2.17.1 for good measure.

The changelog denotes the two Jira issues closed by this release. You can find Openfire build artifacts available for download [here](https://github.com/igniterealtime/Openfire/rel … ⌘ Read more

⤋ Read More

GoCN 每日新闻(2022-01-04)

GoCN 每日新闻(2022-01-04)
  1. 「GoCN 酷 Go 推荐」go 语言位操作库 — bitsethttps://mp.weixin.qq.com/s/UcuKgKnt4fwrg3c-UHc3sw
  2. Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据https://mp.weixin.qq.com/s/7ATm_Zu7ib9MXf8ugy3RcA
  3. 优化 Go 二进制文件的大小[https://prog.world/optimizing-the-size-of-the-go-binary](https://prog.world/optimizing-the-si … ⌘ Read more

⤋ Read More

Ignite Realtime Blog: Openfire 4.6.7 released (Log4j 2.17.1 only change)
Openfire 4.6.7 has been released with only a single change to bump the bundled log4j library to version 2.17.1. Whilst we do not believe Openfire to be vulnerable to the CVEs associated with the log4j 2.17.0 and 2.17.1 releases, we realize that many folks are running naive security scanners that are simply checking for bundled jar versions.

The [changelog](https://download.igniterealtime.org/open … ⌘ Read more

⤋ Read More

Excelize 发布 2.5.0 版本,Go 语言 Excel 文档基础库

Image

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片 … ⌘ Read more

⤋ Read More

go 语言位操作库 bitset
bitset库 实现了 bitsets 数据结构,这是一种正整数和布尔值映射关系的结构,它比 map[uint]bool 更高效

什么是 bitsets

bitsets 基本思想是用一个 bit 位来标记某个元素对应的 Value,每一位表示一个数,1 表示存在,0 表示不存在
比如我要表示 1, 3, 7 这 3 个数

  1. 构造一个空白 bitsets:00000000
  2. 每位代表的值如下:76543210
  3. 想要表示的值标记 1:10001010
有什么好处?

�� … ⌘ Read more

⤋ Read More
⤋ Read More