文档章节

如何设计一个高并发系统?

请把小熊还给我_m
 请把小熊还给我_m
发布于 02/14 13:40
字数 594
阅读 550
收藏 0

3 月,跳不动了?>>>



系统拆分

将一个系统拆分为多个子系统,用 Dubbo 来完成;每个系统连一个数据库。

缓存

大部分的高并发场景,都是读多写少,你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存就可以节省磁盘读写浪费的资源。毕竟 Redis 轻轻松松单机几万的并发。所以可以考虑在项目里承载主要请求的读场景,怎么用缓存来抗高并发。

MQ

如果出现了高并发写的场景就要考虑用 MQ了。大量的写请求灌入 MQ 里,后边系统消费后慢慢写,控制在 mysql 承载范围之内。所以在项目里,那些承载复杂写业务逻辑的场景里,如何用 MQ 来异步写,提升并发性。MQ 单机抗几万并发也是可以的。

分库分表

分库分表,可能到了最后数据库层面还是免不了抗高并发的要求,那么就将一个数据库拆分为多个库,多个库来扛更高的并发;然后将一个表拆分为多个表,每个表的数据量保持少一点,提高 sql 执行的性能。

读写分离

读写分离,大部分时候数据库可能也是读多写少,没必要所有请求都集中在一个库上,可以搞个主从架构,主库写入,从库读取,搞一个读写分离。读流量太多的时候,还可以加更多的从库。

ElasticSearch

Elasticsearch,简称 es。es 是分布式的,可以随便扩容,分布式天然就可以支撑高并发,因为资源不够时就可以扩容加机器来扛更高的并发。那么比较简单的查询、统计类的操作,可以考虑用 es 来承载,还有一些全文搜索类的操作,也可以考虑用 es 来承载。

© 著作权归作者所有

请把小熊还给我_m
粉丝 22
博文 52
码字总数 69711
作品 0
杭州
私信 提问
加载中

评论(0)

面试题:如何设计一个高并发系统?

面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互...

Java邵先生
2019/02/23
0
0
面试必备指南:你的系统如何支撑高并发?

一道面试题的背景引入 大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实本质就是没经历过一些真正有高并发系统的锤炼罢了。 因为没有过相关的项目经历,所以就没...

架构师springboot
2019/02/12
111
0
【J+】互联网沙龙——数据的价值与大当量系统架构之道

八月,我们的活动如约而至。本期活动我们带来两个非常贴合我们开发实战的话题——数据的价值和高并发大流量系统的架构之道。一线实战经验分享,小伙伴准备好你的问题,来和我们的嘉宾一起探讨...

缪斯的情人
2015/08/10
60
0
互联网架构如何实现“高并发”

点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 本文转载自公众号 架构师之路 一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须...

bjweimengshu
2017/12/19
0
0
【J+】互联网沙龙——数据的价值与大当量系统架构之道

八月,我们的活动如约而至。本期活动我们带来两个非常贴合我们开发实战的话题——数据的价值和高并发大流量系统的架构之道。一线实战经验分享,小伙伴准备好你的问题,来和我们的嘉宾一起探讨...

缪斯的情人
2015/08/10
3.6K
25

没有更多内容

加载失败,请刷新页面

加载更多

为什么只能在头文件中实现模板? - Why can templates only be implemented in the header file?

问题: Quote from The C++ standard library: a tutorial and handbook : 引用来自C ++标准库:教程和手册 : The only portable way of using templates at the moment is to implement t......

javail
今天
19
0
Gradle 6 针对已有的构建如何创建一个构建扫描

有关构建扫描的定义为: 构建扫描(build scan)是一个中心化并且可以共享的构建记录。这个构建记录通常能够告诉在构建中发生了什么并且为什么会发生。 通过应用构建扫描插件到你的项目中,你...

honeymoose
今天
17
0
C语言动态内存分配:(一)malloc/free的实现及malloc实际分配/释放的内存

一、malloc/free概述 malloc是在C语言中用于在程序运行时在堆中进行动态内存分配的库函数。free是进行内存释放的库函数。 1、函数原型 #include <stdlib.h> void *malloc( size_t size ); v...

shzwork
今天
17
0
什么是JavaBean? - What is a JavaBean exactly?

问题: I understood, I think, that a "Bean" is a Java class with properties and getters/setters. 我认为,“ Bean”是具有属性和getter / setter的Java类。 As much as I understand,......

技术盛宴
今天
27
0
深圳援鄂最后一批工作人员归来,88万元关爱金发放至85人

中国公益在线3月31日深圳讯 深圳援鄂最后一批工作人员归来......深圳市民政局、深圳市卫健委和深圳市慈善会发起了“深爱战疫天使基金”项目,联合龙华区慈善会和 永贤慈善基金会,进行第二次...

传承天下融媒体中心
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部