在系统调用时,我们可能使用MQ实现自产自销。此处直接使用多线程异步是否也可以实现?
使用多线程异步也可以实现,但是不够优雅。主要在于多线程和MQ的区别。
- CPU消耗。多线程异步可能存在CPU竞争,而MQ不会消耗CPU.
- 可靠性。MQ可以保证可靠性,而多线程不能保证,当前系统宕机可能导致任务丢失。
- 削峰或者消息堆积能力。当业务系统处于高并发,MQ可以将消息堆积在Broker实例中,而多线程会创建大量线程,甚至触发拒绝策略。
应用场景
项目较大时优先使用MQ,否则都可以。
在系统调用时,我们可能使用MQ实现自产自销。此处直接使用多线程异步是否也可以实现?
使用多线程异步也可以实现,但是不够优雅。主要在于多线程和MQ的区别。
应用场景
项目较大时优先使用MQ,否则都可以。