![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高并发问题
文章平均质量分 63
主要介绍实际开发中遇到的问题,如果对项目框架做一个质的提升
信仰_273993243
热爱技术热爱生活,希望大家共同进步
展开
-
漏桶和令牌桶的区别
一、漏桶把请求比作是水,请求进来了就把请求先放进桶里,但是不处理,并以限定的速度出水,出水就相当于处理请求。当水来得过猛而出水不够快时就会导致水直接溢出,即拒绝服务漏桶算法可以很好的控制流量的访问速度,一旦超过该速度就拒绝服务。二、令牌桶令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。三、区别漏桶:如果一下子来了很多请求,但是请求会被放在池子里面,然后以固定的速率去处理请求。令牌桶:以固定的速率往桶转载 2022-05-17 09:59:33 · 9396 阅读 · 0 评论 -
QPS\TPS\并发连接数
一、QPS每秒查询率,注意只是查询,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。1秒处理多少个请求,这个包含收到请求建立tcp,处理数据返回结果。二、TPS:是TransactionsPerSecond的缩写,也就是事务数每秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。1)用户请求服务器2)服务器自己的内原创 2022-01-27 17:22:32 · 3860 阅读 · 0 评论 -
限流-Nginx
Nginx的limit_req和limit_conn是可以实现限流的,那么limit_req和limit_conn的区别是什么?在了解limit_req和limit_conn前先看下TCP和HTTP的区别。一、TCP和HTTP的区别和联系1、TCP是传输层协议,定义数据传输和连接方式的规范。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。2、HTTP 超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范原创 2022-01-27 17:17:16 · 2438 阅读 · 0 评论 -
02高并发系统-限流
限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。一、为什么要限流限制并发和请求量,保护自身系统和下游系统不被巨型流量冲垮等。二、原理限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务或进行流量整形。三、场景秒杀抢购四、限流方式限制总并发数、限制瞬时并发数、限制时间窗口内的平均速率,其他还有如限制远程接口调用速率、限制MQ的消费速率。另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。1、限制总并发数比如转载 2022-01-27 16:43:53 · 149 阅读 · 0 评论 -
限流-令牌桶限流-Guava RateLimiter
一、Guava的 RateLimiter提供了令牌桶算法实现1、平滑突发限流(SmoothBursty)2、平滑预热限流(SmoothWarmingUp)public abstract class RateLimiter { //平滑突发限流 static RateLimiter create(double permitsPerSecond, SleepingStopwatch stopwatch) { RateLimiter rateLimiter = new SmoothBursty(转载 2022-01-27 11:41:37 · 1309 阅读 · 0 评论 -
并发读和并发写解决方案
并发有几种一、高并发读取策略二、高并发写策略1、分布式锁方案2、关键点数据校验DB乐观锁方案3、通过redis原子操作校验关键点数据方案4、无关键点数据检查更新合并操作的业务并发有几种高并发读取高并发写入一、高并发读取策略1、加入实体缓存这个就是我们经常使用的一种方案,采用本地缓存或者分布式缓存来实现。这些是非常成熟的方案。问题:但是对于缓存,我们需要考虑一下几点:缓存雪崩,缓存穿透,缓存大量的热点key过期。解决:上面几个问题本质上来说都是缓存回源问题,可以采用不回源策略来解决这些.原创 2021-12-19 21:23:39 · 3112 阅读 · 0 评论