Blinkbean
令牌桶 令牌桶
原理 以v的速度向桶内放置令牌,桶的容量为b,如果桶满了多余令牌就会被丢弃。 请求到达时,我们向桶内获取令牌,如果令牌足够,则请求通过。 如果桶内令牌不够,则这个请求会被缓存等待令牌足够是转发,或者被直接丢掉。 桶的容量b,可以应对突发的流
2023-04-19
限流器 限流器
参考系统自适应限流 5种限流算法,7种限流方式,挡住突发流量 限流通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而停止服务。
2023-04-19
网络-网络状态工具ss 网络-网络状态工具ss
ssss命令 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 语法ss
2023-02-01
网络-网络工具nc 网络-网络工具nc
ncnc是网络工具中的瑞士军刀。nc命令 全称netcat,用于TCP、UDP或unix域套接字(uds)的数据流操作,它可以打开TCP连接,发送UDP数据包,监听任意TCP 和UDP端口,同时也可用作做端口扫描,支持IPv4和IPv6,与
2023-02-01
Linux下使用tc模拟网络延迟和丢包 Linux下使用tc模拟网络延迟和丢包
模拟延迟传输简介netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux
2023-02-01
Golang-信号量semaphore Golang-信号量semaphore
本文分类《源码计划》 semaphore带权重的信号量在Golang中提供了一种灵活的机制,用于管理对共享资源的并发访问。通过合理使用带权重的信号量,可以更好地平衡并发访问和资源使用,从而提高程序的性能和稳定性 数据结构/
2023-02-01
Golang-sync.Cond Golang-sync.Cond
本文分类《源码计划》 Cond基本用法读写操作都由 sync.Mutex 进行并发安全的保护 定义一个互斥锁,用于保护共享数据; 创建一个sync.Cond对象,关联这个互斥锁; 在需要等待条件变量的地方,获取这个互斥锁
2023-02-01
网络-压测工具iperf3 网络-压测工具iperf3
sed是什么sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内
2023-02-01
Linux virtual server (LVS) Linux virtual server (LVS)
LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于
2022-09-19
Golang-sync.Pool使用及原理 Golang-sync.Pool使用及原理
本文分类《源码计划》 Pool​ 你想看一本书,需要的时候开始印刷,看完了就卖废品,1000个人想看就得印刷1000本书,卖1000本废品。这明显太不绿色了,你想了想如果建一个图书馆,里面放几本书,大家想看的时候去借,看
2021-07-28
设计模式 设计模式
什么是设计模式设计模式是为了重用代码、让人更容易理解代码、保证代码可靠性而总结出来的通用的解决方案。你从来没有学过设计模式,但是遇到类似的问题一定有自己的解决方案,那这个解决方案也算自己的设计模式吧。或者在看到某种设计模式的时候会突然发现,
2021-07-23
Golang-Channel能怎么用? Golang-Channel能怎么用?
Golang CSP 不要通过共享内存来通信,而应该通过通信来共享内存。 CSP模型用于描述两个独立的并发实体通过共享的通信管道(channel)进行通信的并发模型。Golang借用process和channel两个概念作为并发的理论支持
2021-07-22
3 / 8