<返回更多

分布式系统中这个设计,简单明了,让你的系统更加稳定

2019-08-29    
加入收藏

这样的事情经常在各个互联网公司发生,我以电商系统举一个简单的例子,A系统是一个活动运营页面,给用户抽取优惠券,B系统是用户的订单系统,我们常常遇到这样的场景,当进行一场运营活动的时候,A系统的流量非常的大,最后把整个系统都拖垮了,造成用户无法正常下单购买。

可能有人就会问,我们通常不是把活动系统跟订单系统分开部署了么?怎么还会引起服务雪崩呢?

 

分布式系统中这个设计,简单明了,让你的系统更加稳定

 

 

这是我们常见的系统部署的例子,虽然我们把不同的系统进行分开部署,但却把流量入口跟数据库部署在同一个模块,所以,但数据库过载或者Proxy过载的时候,仍然无法有效的保护系统。

隔离设计

每一位架构师、程序员、运维工程师都必须懂得隔离设计,隔离设置,源于轮船的设计,在轮船设计中,我们常常会设计多个船舱,每个船舱都是独立的空间,这样子,当轮船在行驶过程中,即便某个船舱遭受破坏进水,也有船舱能够正常工作。从而保证整个轮船不会沉没。

在分布式系统中,隔离设计的实现有两种不同的方式,一是系统隔离,二是用户隔离。

系统隔离

在分布式系统中,我们常常把不同的模块部署到不同的机器上面,避免不同的模块彼此之间受到影响。(每台计算机的资源都是有限的,特别是IO密集型、CPU密集型的模块,容易拖垮其他业务)。除此之外,我们还要对底层的存储与上层的接入层进行分离。在实际的应用中,我们通常会对不同的不同业务的存储进行数据库拆分,而在接入层,常常为了节约成本,而使用限流设计。

 

分布式系统中这个设计,简单明了,让你的系统更加稳定

 

 

用户隔离

另外一种方式,我们常常根据用户进行隔离,不同的用户访问不同的运行实例。这种在大型互联网公司也是非常常见的。例如阿里巴巴有北京、上海、杭州、深圳等多个不同的数据中心,不同的用户访问不同的系统实例。

 

分布式系统中这个设计,简单明了,让你的系统更加稳定

 

 

不同的用户群访问不同的实力群,可以让隔离做的更加彻底,但同时也是伴随着非常大的挑战。我们会面临着存储、不同实例间的通信等多种问题,我们后面会再次进行分析跟学习,欢迎大家关注我。

总结

好了,今天我们介绍到这里,隔离设计,可以让我们的系统更加稳定,无论是程序员、架构师、还是运维,都是必备的计算机专业知识。欢迎大家关注我,整理后会和大家继续分享。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>