天天观点:如何成为架构师?
2023-06-17 11:39:44
个人图书馆-精诚至_金石开
阿里妹导读从一些危害讲,业务系统处理业务请求,如果使用多线程模...
(资料图片)
阿里妹导读
从一些危害讲,业务系统处理业务请求,如果使用多线程模型并且使用了sync,非常容易导致请求hang死,并且不利于我们的并发。
从线程技术上来说,默认是unbound。这会导致很多的内存溢出,并且使用多线程,服务器重启会导致业务处于不可知的状态。
从使用原因来说:业务中使用多线程(有别于Tomcat这种容器中间件)是为了提高并发能力,或者是异步化业务能力。而这两种都有其他的方案来替代。比如高并发,我们可能会进行一些拆分操作,比如异步化,会使用消息队列等。
怎么做呢,比如异步化,我们用消息队列。如果是资源共享,那么尽量做到读,而不是写。如果是共享写,那么根据业务场景尽量拆分,然后归拢业务职责。这也是架构设计中聚合的重要性。很多框架比如netty,都有无锁设计。