#并发压测

Memcache的mutex设计模式 -- 高并发解决方案

场景Mutex主要用于有大量并发访问并存在cache过期的场合,如首页top10,由数据库加载到memcache缓存n分钟;微博中名人的contentcache,一旦不存在会大量请求不能命中并加载数据库;需要执行多个IO操作生成的数据存在cache中,比如查询db多次;问题在大并发的场合,当cache失效时,大量并发同...

【转】记录PHP、MySQL在高并发场景下产生的一次事故

看了一篇网友日志,感觉工作中值得借鉴,原文如下: 事故描述在一次项目中,上线了一新功能之后,陆陆续续的有客服向我们反应,有用户的个别道具数量高达42亿,但是当时一直没有到证据表示这是,确实存在,并且直觉告诉我们,这是不可能的,就一直没有在意,直到后来真的发现了一个用户确实是42亿,当时我们整个公司都震惊了,如...

CMS收集器和G1收集器 他们的优缺点对比 G1只有并发标记才不会stop-the-world 其他都会停下来(阿里多次问到)

CMS收集算法参考:图解CMS垃圾回收机制原理,-阿里面试题G1收集算法参考:G1垃圾收集器入门首先要知道Stoptheworld的含义(网易面试):不管选择哪种GC算法,stop-the-world都是不可避免的。Stop-the-world意味着从应用中停下来并进入到GC执行过程中去。一旦Stop-the-worl...

聊聊并发(七)——Java中的阻塞队列

聊聊并发(七)——Java中的阻塞队列原文首发于InfoQ阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里...

看秒杀系统的时候看到的关于并发队列的介绍,摘抄如下

并发队列的选择Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue和LinkedBlockingQueue 。 ArrayBlockingQueue是初始容量固定的阻塞队列,我们可以用来作为数据库模块成功竞拍的队列,比...

Mysql 的InnoDB事务方面的 多版本并发控制如何实现 MVCC

 Mysql的MVCC不能解决幻读的问题,但是Mysql还有间隙锁功能,Mysql的间隙锁工作在RepeatableRead隔离级别下面,可以防止幻读,MVCC工作在:在REPEATABLEREAD和READCOMMITED两种事务下面参考:Mysql间隙锁原理,以及RepeatableRead隔离级别下可以...

从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)

自己写的组件有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持支持正常的组件调用方式,也支持Vue.use,也可以直接引用打包好的js文件,配合vue.js就不需要webpakc这种构建工具了,可以直接在页面内使用,下面以‘yyl-npm-practice’这个包为例第一...

高并发系统设计(十九)【注册中心】:微服务架构结合RPC框架如何做到分布式系统寻址?

通过RPC框架,能够解决服务之间,跨网络通信的问题,这就完成了微服务化改造的基础。但是在服务拆分之后,需要维护更多的细粒度的服务,面对的第一个问题就是,如何让RPC客户端知道服务端部署的地址,服务注册与发现的问题。你所知道的服务发现服务注册和发现不是一个新的概念,比如说,Nginx是一个反向代理组件,那么Nginx需要...

高并发系统设计(十八):【RPC框架】10万QPS下如何实现毫秒级的服务调用?

在做了服务化拆分之后,把业务逻辑都拆分到了单独部署的服务中,那么假设在完成一次完整的请求时,需要调用4~5次服务,计算下来,RPC服务需要承载大概每秒10万次的请求。那么,你该如何设计RPC框架,来承载如此大的请求量呢?你要做的是:选择合适的网络模型,有针对性地调整网络参数,以优化网络传输性能;选择合适的序列化方式,以...

高并发系统设计(十七):【系统架构】微服务化后,系统架构要如何改造?

原文链接: https://www.cnblogs.com/wt645631686/p/13488090.html微服务化架构 在这个架构中,将用户、订单和商品相关的逻辑,抽取成服务独立的部署,原本的Web工程和队列处理程序,将不再直接依赖缓存和数据库,而是通过调用服务接口,查询存储中的信息。有了构...

高并发系统设计(二十五):【压力测试】怎样设计全链路压力测试平台?

什么是压力测试压力测试(简称为压测)大部分同学这样认为:先搭建一套与正式环境功能相同的测试环境,并且导入或者生成一批测试数据,然后在另一台服务器,启动多个线程并发地调用需要压测的接口(接口的参数一般也会设置成相同的,比如,想要压测获取商品信息的接口,那么压测时会使用同一个商品ID)。最后,通过统计访问日志,或者查看测试...

高并发系统设计(十五):【消息队列】如何降低消息队列系统中消息的延迟?

yuanwenlianjie:https://www.cnblogs.com/wt645631686/p/13473186.html什么是消息延迟?消息队列在消费过程中大量堆积就是消息延迟,也就是消费的频率跟不上生产。比方说,生产者向队列中一共生产了1000条消息,某一个消费者消费进度是900条,那么这个消费者的消费延...

高并发系统设计(十四):【消息队列】如何消息不丢失?并且保证消息仅仅被消费一次?

https://www.cnblogs.com/wt645631686/p/13200665.html消息从被写入到消息队列,到被消费者消费完成,这个链路上会有哪些地方存在丢失消息的可能呢?其实,主要存在三个场景:消息从生产者写入到消息队列的过程。消息在消息队列中的存储场景。消息被消费者消费的过程。 &nbs...

高并发系统设计(十三):消息队列的三大作用:削峰填谷、异步处理、模块解耦

原文链接:"https://www.cnblogs.com/wt645631686/p/13199532.html而在秒杀场景下,高并发的写请求并不是持续的,也不是经常发生的,而只有在秒杀活动开始后的几秒或者十几秒时间内才会存在。为了应对这十几秒的瞬间写高峰,将秒杀请求暂存在消息队列中,然后业务服务器会响应用户“秒杀结...

高并发系统设计(十二):【缓存的正确使用姿势】缓存穿透了怎么办?如何最大程度避免缓存穿透

原文链接https://www.cnblogs.com/wt645631686/p/13199335.html缓存穿透其实是指从缓存中没有查到数据,而不得不从后端系统(比如数据库)中查询的情况。举例:如果要读取一个用户表中未注册的用户,按照旁路缓存策略,我们会先读缓存,再穿透读数据库。由于用户并不存在,所以缓存和数据库...
首页上一页...1011121314...下一页尾页