MQ和多线程异步有什么区别?

在系统调用时,我们可能使用MQ实现自产自销。此处直接使用多线程异步是否也可以实现?

使用多线程异步也可以实现,但是不够优雅。主要在于多线程和MQ的区别。

  1. CPU消耗。多线程异步可能存在CPU竞争,而MQ不会消耗CPU.
  2. 可靠性。MQ可以保证可靠性,而多线程不能保证,当前系统宕机可能导致任务丢失。
  3. 削峰或者消息堆积能力。当业务系统处于高并发,MQ可以将消息堆积在Broker实例中,而多线程会创建大量线程,甚至触发拒绝策略。

应用场景
项目较大时优先使用MQ,否则都可以。

你可能感兴趣的:(分布式,java,分布式,经验分享)