#并发模式

高并发系统设计(十八):【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缓存穿透其实是指从缓存中没有查到数据,而不得不从后端系统(比如数据库)中查询的情况。举例:如果要读取一个用户表中未注册的用户,按照旁路缓存策略,我们会先读缓存,再穿透读数据库。由于用户并不存在,所以缓存和数据库...

高并发系统设计(十一):【缓存的正确使用姿势】缓存如何做到高可用?

原文链接:https://www.cnblogs.com/wt645631686/p/13198517.html为了增大缓存系统架构的高可用,增加缓存的命中率,尽量避免请求穿透缓存进入后端数据库,主要选择的方案有客户端方案、中间代理层方案和服务端方案三大类:客户端方案就是在客户端配置多个缓存的节点,通过缓存写入和读取算...

高并发系统设计(十):【缓存的正确使用姿势】如何选择缓存的读写策略?

原文链接:https://www.cnblogs.com/wt645631686/p/13198336.html 在更新数据时不更新缓存,而是删除缓存中的数据,在读取数据时,发现缓存中没了数据之后,再从数据库中读取数据,更新到缓存中。   这是使用缓存最常见的策略,旁路缓存策略,...

高并发系统设计(九):数据库和NoSQL如何做到互补?及其缓存加速的两面性

原文链接:https://www.cnblogs.com/wt645631686/p/13196163.html数据库系统大多使用的是传统的机械磁盘,对于机械磁盘的访问方式有两种:一种是随机IO;另一种是顺序IO。随机IO就需要花费时间做昂贵的磁盘寻道,一般来说,它的读写效率要比顺序IO小两到三个数量级,所以我们想要提...

高并发系统设计(八):分库分表后ID的全局唯一性策略(发号器)

原文链接:https://www.cnblogs.com/wt645631686/p/13195329.html在单库单表的场景下,我们可以使用数据库的自增字段作为ID,因为这样最简单,对于开发人员来说也是透明的。但是当数据库分库分表后,使用自增字段就无法保证ID的全局唯一性了。先说一下UUID,UUID(Univer...

高并发系统设计(七):【Mysql数据库的优化】主从读写分离、分库分表

原文链接:https://www.cnblogs.com/wt645631686/p/13192920.html主从读写分离其实,大部分系统的访问模型是读多写少,读写请求量的差距可能达到几个数量级,那么这就是我们所说的主从读写分离。主从复制的原理这里不再阐述,本人博客里有关于Mysql主从的配置文章,当然里面也介绍了原...

高并发系统设计(六):如何减少频繁创建数据库连接的性能损耗?

原文链接:https://www.cnblogs.com/wt645631686/p/13192761.html 数据库的调用方式是先获取数据库的连接,然后依靠这条连接从数据库中查询数据,最后关闭连接释放数据库资源。这种调用方式下,每次执行SQL都需要重新建立连接,频繁地建立数据库连接耗费时间长导致了访问慢的...

高并发系统设计(五):【系统设计目标③】如何让系统易于扩展?

原文链接:https://www.cnblogs.com/wt645631686/p/13190894.html 数据库、缓存、依赖的第三方、负载均衡、交换机带宽等等都是系统扩展时需要考虑的因素。我们要知道系统并发到了某一个量级之后,哪一个因素会成为我们的瓶颈点,从而针对性地进行扩展。比方说,你系统的流量是每...

高并发系统设计(四):【系统设计目标②】系统怎样做到高可用?

本文原链接: https://www.cnblogs.com/wt645631686/p/13190832.html通常来讲,一个高并发大流量的系统,系统出现故障比系统性能低更损伤用户的使用体验。可用性是一个抽象的概念,你需要知道要如何来度量它,与之相关的概念是:MTBF和MTTR。MTBF(MeanTime...
首页上一页...3233343536...下一页尾页