中间件开发:不要阻塞I/O线程
当某块逻辑出现问题,导致程序阻塞时,可能会导致以下两种情况之一: 1. 如果这块逻辑由中间件的I/O线程负责处理,那么会导致I/O线程处理 2. 如果这块逻辑不是由I/O线程负责处理,则bla bla 一定要避免第一种情况。虽然对这块逻辑来说,两种选项都是程序被阻塞,业务未被处理;但在第二种选项中,指向其他健康逻辑的请求还是可以被中间件所接受请工作。 在第一种选项中,极端情况下所有I/O线程都被会被阻塞,导致指向其他健康逻辑的请求都进不来,整个系统彻底不可用。 所以,I/O线程一般不要用来处理业务逻辑。 业务逻辑应该交由专门的线程池来处理。