构建更健壮的系统:不同的业务放在不同的线程/线程池里面
程序员文章站
2022-01-22 10:04:07
...
有时候我们会发现新上线的部分业务出现了问题,并且影响了其他功能。
我有时候想到从架构上如何避免这个问题,然后有了这样的一个思路。
开发的时候我们基本上不会考虑到这种问题,整个服务就共用一个线程池,甚至有些系统是单线程的。
一旦出现问题整个服务就一起挂掉了
这个肯定是我们不想看到的。
解决这个问题方法就是把不同模块放在不同的线程里面,如果之前使用的是线程池那么 不同业务也要用不同的线程池分开。因为如果这个业务有问题,这个业务所在的线程池也会很快的阻塞掉。
如果不同的业务分开到不同的线程池里面去,至少不会因为这个业务导致其他业务不可用。
再配合上一篇干掉耗时任务的方法,可以保证线上服务不会全完蛋