面试题:设计一个高流量高并发的系统,有哪些要点?


前言

我相信每一位开发同学多多少少都想参与或负责一个高用户、高访问、高并发的系统吧。一来可以增加自己实际的项目经验,有应对高并发场景的解决方案,二来是有个高并发的项目经验无疑是自己简历的一个大大的加分项。

但是奈何很多人都没有机会可以参与这样的项目,本文从以下几点介绍一下设计一个高流量高并发的系统需要经历哪些步骤以及考虑哪些因素(文章中的不足之处还请大佬们多多指点)。


1、设计原则

1.1、系统设计原则

在设计一个系统之前,我们先要有一个统一且清晰的认知:不要想着一下就能设计出完美的系统,好的系统是迭代出来的。不要复杂化,要先解决核心问题。但是要有先行的规划,对现有的问题有方案,对未来系统有预案。

在设计高并发的系统时要遵循以下几个原则:

无状态原则

什么是无状态?服务器不保存状态,对单次请求的处理不依赖别的请求就是无状态,主要是为了在应对高并发时方便水平扩展。

拆分原则

在我们的系统体积过于庞大或者承载不了大量的请求时,就要考虑拆分系统,将复杂问题简单化或将流量分散不同子系统分担压力。可以按照以下几个维度进行拆分:

  • 系统维度: 比如电商系统,我们可以拆分成商品、支付、优惠券多个子系统。
  • 功能维度: 将系统按功能再次拆分。
  • 读写维度: 按照读写比例将服务拆分成读服务和写服务。
  • 模块维度: 将系统按照基础架构、消息队列、分库分表 、组件等模块进行拆分维护。
  • </
  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuxu1116

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值