Go
文章平均质量分 72
blinkbean
不知名CRUD选手。
展开
-
Golang trace分析
golang trace原创 2022-08-03 14:08:30 · 571 阅读 · 0 评论 -
常见限流方式——静态限流
限流是什么常见限流算法(静态)1.固定窗口算法2.滑动窗口算法3.滑动日志算法4.漏桶算法5.令牌桶算法6.Redis分布式限流参考限流是什么通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而停止服务。阈值:在一个单位时间内允许的请求量。拒绝策略:超过阈值的请求的拒绝策略,常见的拒绝策略有直接拒绝、排队等。常见限流算法(静态)1.固定窗口算法固定窗口算法又叫计数器算法,是一种.原创 2022-04-02 17:46:30 · 801 阅读 · 0 评论 -
Golang sync/atomic包的原子操作是怎么保证的?
Golang sync/atomic包的原子操作是怎么保证的?在Go语言标准库中,sync/atomic包将底层硬件提供的原子级内存操作封装成了Go的函数。Mutex由操作系统实现,而atomic包中的原子操作则由底层硬件直接提供支持。在CPU实现的指令集里,有一些指令直接封装进atomic包,这些指令在执行过程中是不允许中断的,因此原子操作可以在lock-free的情况下保证并发安全,并且它的性能也能做到随CPU个数的增多而线性扩展。数据类型int32int64uint32uint64u原创 2021-02-20 16:35:14 · 893 阅读 · 1 评论 -
你的AES加密结果相同吗?
AES加密后的结果,数据接收方解不出来,是哪里的问题?AES的安全性:在密码学的意义上,只要存在一个方法,比穷举法还要更有效率,就能被视为一种“破解”。故一个针对AES 128位密钥的攻击若“只”需要2120计算复杂度(少于穷举法 2128),128位密钥的AES就算被破解了。从应用的角度来看,这种程度的破解依然太不切实际。AES加密方式有五种:电码本模式(Electronic Codebook Book (ECB),将整个明文分成若干段相同的小段,然后对每一小段进行加密。密码分组链接原创 2021-01-05 19:39:21 · 5943 阅读 · 1 评论 -
Golang三行代码发送钉钉机器人消息
dingtalk钉钉机器人消息封装——Golang实现,简化日常通过钉钉群机器人发送提示、报警消息操作。目前自定义机器人支持文本(text)链接(link)markdownActionCard整体跳转独立跳转FeedCard机器人官方文档使用创建钉钉群机器人选择添加自定义机器人。安全设置共有关键词、加签、IP白名单三种设置,需要根据情况进行选择。选择自定义关键词,这里设置的关键词在初始化机器人的时候会用到。获取go get github.com/bli原创 2020-07-05 16:11:23 · 3453 阅读 · 6 评论 -
golang——并发、重复抑制、非阻塞缓存
package mainimport ( "fmt" "io/ioutil" "net/http" "sync" "time")type entry struct { res result ready chan struct{} // 重复抑制}type result struct { value interface{} err error}type...原创 2020-03-11 10:47:50 · 699 阅读 · 0 评论 -
golang——defer
package mainimport "fmt"func a() int{ var i int defer func(){ i++ fmt.Println("defer2:",i) }() defer func(){ i++ fmt.Println("defer1:",i) }() return i // 返回i的副本}func b()(i int){ ...原创 2020-03-09 14:21:26 · 203 阅读 · 0 评论 -
9宫格群头像生成——golang
先看效果头像间有间隔头像间无间隔代码网络图片下载到本地func multiGetImages(urls []string, dir string, prefix string)(localPath []string){ var w = sync.WaitGroup{} w.Add(len(urls)) timestamp := time.Now().UnixNano()...原创 2020-03-03 15:00:53 · 1558 阅读 · 1 评论 -
golang实用库
图片处理调整大小,旋转,裁剪,拼接滤镜、模糊、锐化、亮度、对比度、饱和度、伽玛校正https://github.com/disintegration/imaging缩放,裁剪,更多滤镜https://github.com/disintegration/gift...原创 2020-03-03 14:26:43 · 473 阅读 · 0 评论 -
Pipeline批量获取值
实现批量获取的方式1、MGET2、PIPELINEpipe := redis.Pipeline()for _,k := range keys { pipe.Get(k).Val()}cmdValues := pipe.Exec()pipe.Close()for _, vCmd := cmdValues { cmd := vCmd.(*redis.StringCmd...原创 2020-02-18 19:18:19 · 778 阅读 · 0 评论 -
Go语言字符串高效拼接
原文链接在我们编程的时候,和字符串打交道是必不可少的,我们对数据库里文本的处理,Web文本的显示,文本数据的存储等都需要和字符串打交道,那么对于字符串来说,查找、拼接这些都是常用的操作,尤其是以拼接使用的比较多,比如把一个人的姓名和年龄拼接在一起显示。在Go语言(golang)中,对于字符串的拼接处理有很多种方法,那么那种方法才是效率最高的呢?因为内存很贵、性能很重要,有时候不慎字符串的转换和...转载 2019-06-20 20:59:13 · 9276 阅读 · 0 评论