构建更健壮的系统:不同的业务放在不同的线程/线程池里面

有时候我们会发现新上线的部分业务出现了问题,并且影响了其他功能。

我有时候想到从架构上如何避免这个问题,然后有了这样的一个思路。

开发的时候我们基本上不会考虑到这种问题,整个服务就共用一个线程池,甚至有些系统是单线程的。

一旦出现问题整个服务就一起挂掉了

这个肯定是我们不想看到的。

解决这个问题方法就是把不同模块放在不同的线程里面,如果之前使用的是线程池那么 不同业务也要用不同的线程池分开。因为如果这个业务有问题,这个业务所在的线程池也会很快的阻塞掉。

如果不同的业务分开到不同的线程池里面去,至少不会因为这个业务导致其他业务不可用。

再配合上一篇干掉耗时任务的方法,可以保证线上服务不会全完蛋

猜你喜欢

转载自freyja.iteye.com/blog/2394895