这样的事情经常在各个互联网公司发生,我以电商系统举一个简单的例子,A系统是一个活动运营页面,给用户抽取优惠券,B系统是用户的订单系统,我们常常遇到这样的场景,当进行一场运营活动的时候,A系统的流量非常的大,最后把整个系统都拖垮了,造成用户无法正常下单购买 。
可能有人就会问,我们通常不是把活动系统跟订单系统分开部署了么?怎么还会引起服务雪崩呢?
文章插图
这是我们常见的系统部署的例子,虽然我们把不同的系统进行分开部署,但却把流量入口跟数据库部署在同一个模块,所以,但数据库过载或者Proxy过载的时候,仍然无法有效的保护系统 。
隔离设计每一位架构师、程序员、运维工程师都必须懂得隔离设计,隔离设置,源于轮船的设计,在轮船设计中,我们常常会设计多个船舱,每个船舱都是独立的空间,这样子,当轮船在行驶过程中,即便某个船舱遭受破坏进水,也有船舱能够正常工作 。从而保证整个轮船不会沉没 。
在分布式系统中,隔离设计的实现有两种不同的方式,一是系统隔离,二是用户隔离 。
系统隔离在分布式系统中,我们常常把不同的模块部署到不同的机器上面,避免不同的模块彼此之间受到影响 。(每台计算机的资源都是有限的,特别是IO密集型、CPU密集型的模块,容易拖垮其他业务) 。除此之外,我们还要对底层的存储与上层的接入层进行分离 。在实际的应用中,我们通常会对不同的不同业务的存储进行数据库拆分,而在接入层,常常为了节约成本,而使用限流设计 。
文章插图
用户隔离另外一种方式,我们常常根据用户进行隔离,不同的用户访问不同的运行实例 。这种在大型互联网公司也是非常常见的 。例如阿里巴巴有北京、上海、杭州、深圳等多个不同的数据中心,不同的用户访问不同的系统实例 。
文章插图
不同的用户群访问不同的实力群,可以让隔离做的更加彻底,但同时也是伴随着非常大的挑战 。我们会面临着存储、不同实例间的通信等多种问题,我们后面会再次进行分析跟学习,欢迎大家关注我 。
总结好了,今天我们介绍到这里,隔离设计,可以让我们的系统更加稳定,无论是程序员、架构师、还是运维,都是必备的计算机专业知识 。欢迎大家关注我,整理后会和大家继续分享 。大家的支持是我继续唠嗑的动力 。同名公众号(沙茶敏碎碎念)
【分布式系统中这个设计,简单明了,让你的系统更加稳定】
推荐阅读
- Linux 系统 CPU 占用率较高问题排查思路
- 这篇文章把 Linux 系统讲的如此详细,看完你一定会有质的飞跃
- Facebook 如何在一亿行代码中迅速找到缺陷?
- 星座男|职场中,被领导打压,又不能辞职,四招教你脱离困境
- 丸到一起的做法
- 茶最多能泡几次?怎么喝茶最滋补
- 西游记原著中狮驼岭到底多可怕 孙悟空到狮驼岭为啥被吓到了
- 茶席中插花选择的技巧
- 设计茶席 要考虑四个要素
- 高中教师工作总结感悟 高中教师工作总结