写在前面 高并发下如何设计秒杀系统?这是一个高频面试题。 这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱
......
24
0
0
2023-09-01
JVM 相关的异常,一直是一线研发比较头疼的问题。因为对于业务代码,JVM的运行基本算是黑盒,当异常发生时,较难直观地看到和找到问题所在,这也是我们一直要研究其内部逻辑的原因。 本篇就有一个近期线上JVM内存泄漏的例子,带大家强行分析一波~ Part1线上服务器报警了 某天,同事来找我帮忙,原来是某系统毫无征兆地来了一连串报警,一波机器的老年代内存
......
57
0
0
2023-07-06
前言 HttpClient 作为Java 程序员 最常用的Http工具,其对Http连接的管理能简化开发,并且提升连接重用效率;在正常情况下,HttpClient能帮助我们高效管理连接,但在一些并发高,报文体较大的情况下,如果再遇到网络波动,如何保证连接被高效利用,有哪些优化空间。 一、问题现象北京时间X月X日,浏览器信息流服务监控出现异常,主要表现在以下三
......
53
0
0
2023-06-15
目录导读什么是事件循环事件循环详解每个循环阶段内容详解走进案例解析nextTick 与 setImmediatenextTick 递归的危害setImmediatesetTimeout 与 setImmediatenextTick 与 Promise最后案例导读ALL THE TIME,我们写的的大
......
68
0
0
2023-06-15
曾经有一家巨头公司和我们公司进行战略合作,经过双方的不懈努力及精诚合作,双方公司决定共同举办一场秒杀活动,我们公司提供优质商品和强有力的吸引价格以及使用场景,对方公司提供巨大的用户流量,再加上我们公司自己的用户流量,粗略估算下来有5000万的用户流量。其实,当时我们的架构是完全支撑不了千万级流量的瞬时冲击的,但是双方老板已经达成协议就要快速干起来,而且给了一
......
198
0
0
2023-01-15
并发并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行但任一个时刻点上只有一个程序在处理机上运行我们说的高并发是什么 ?上面的定义明显不是我们通常所言的并发,在互联网时代,所讲的并发、高并发,通常是指并发访问。也就是在某个时间点,有多少个访问同时到来我们说的高并发是什么 ?通常如果一个系统的日P
......
149
0
0
2022-12-23
iptables相关如非必须,关掉或卸载iptables防火墙,并阻止kernel加载iptables模块。这些模块会影响并发性能。单进程最大打开文件数限制一般的发行版,限制单进程最大可以打开1024个文件,这是远远不能满足高并发需求的,调整过程如下:
ulimit –n 65535 # 将root启动的单一进程的最大可以打开的文件数设置为65535
......
195
0
0
2022-12-14
第三章 jdk并发包cas 比较交换它包含三个参数cas(v,e,n).v表示要更新的变量,e表示预期值,n表示下一个新值。仅当v==e时,才会将v的值设为n,如果v!=e,则说明其他线程做了更新,则当前线程说明都不做,执行下一次循环。最后cas返回当前v的真实值。如AtomicInteger的实现。juc并发包下的重入锁ReentrantLock较sync
......
144
0
0
2022-12-05
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。首先,我们需要明确一下这几个名词出现的场景:分布式高并发环境。如果你的产品卖相不好,没人鸟它,那它就用不着这几个属性。不需要任何加成,低并发系统就能工作的很好。分布式系统是一个整体,调用关系错综复杂,其中某个资源异常,大概率会造成级联故障。当系统处于超负荷的压力之下,容器或者宿主机,
......
187
0
0
2022-11-12
【编者按】此文是根据京东资深Java工程师张开涛11月21日在msup主办的into100沙龙第14期《京东商品详情页应对大流量的一些实践》演讲中的分享内容整理而成。以下为主题内容:大家来京东打开商品页一般会看到如通用版、闪购、全球购等不同的页面风格,这里面会牵扯到各种各样垂直化的模板页面渲染。以前的解决方案是做静态化,但是静态化一个很大的问题就是页面改版时
......
221
0
0
2022-10-20
当一个系统访问量及用户量增加,数据库的数据也随之增加。当Mysql中一张表的记录数超过1000万,会出现性能的大幅下降,甚至一条简单的SQL查询都有可能阻塞整个数据库。这时需要对数据库的架构动态扩展设计如:水平分区,才能使系统达到友好的用户体验。示例图1示例图2水平分区设计思路水平分区技术:同一个数据库表中的记录通过Hash算法取模方式等拆成多张表,分别存储
......
198
0
0
2022-07-10
在开发具有较高并发访问的系统时,大家知道的有哪些手段可以保护后端应用不被请求击垮?比如我们可以分析出有哪些服务的访问量较大,采用缓冲的方式提供数据。另外,目前分布式服务框架,例如Dubbo、以及Spring Cloud都提供了服务的治理功能,采用服务降级策略,可以提供Mock值的方式保护服务。当然,上面的办法明显时牺牲了用户体验,保全应用的做法,对有些场景的
......
179
0
0
2022-04-20
前言缓存,设计的初衷是为了减少繁重的IO操作,增加系统并发能力。不管是 CPU多级缓存,page cache,还是我们业务中熟悉的 redis 缓存,本质都是将有限的热点数据存储在一个存取更快的存储介质中。计算机本身的缓存设计就是 CPU 采取多级缓存。那对我们服务来说,我们是不是也可以采用这种多级缓存的方式来组织我们的缓存数据。同时 redis 的存取都会
......
213
0
0
2022-04-15
最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执
......
206
0
0
2022-04-14
技术分析如果你比较关注现在的技术形式,就会知道微服务现在火的一塌糊涂,当然,事物都有两面性,微服务也不是解决技术,架构等问题的万能钥匙。如果服务化带来的利大于弊,菜菜还是推荐将系统服务化。随着服务化的进程的不断演化,各种概念以及技术随之而来。任何一种方案都是为了解决问题而存在。比如:熔断设计,接口幂等性设计,重试机制设计,还有今天菜菜要说的限流设计,等等这些
......
187
0
0
2022-04-12