点击上方“Java面试题精选”,关注公众号
面试刷图,查缺补漏
号外:****往期面试题,10篇为一个单位归置到本公众号菜单栏-面试题,有需要的欢迎翻阅
阶段汇总集合:
消息队列应用场景
1、异步处理
小结:如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题呢?
因此架构改变后,系统的吞吐量提高到每秒20 QPS。比串行提高了3倍,比并行提高了两倍。
2、应用解耦
如何解决以上问题呢?引入应用消息队列后的方案,如下图:
假如:在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦。
往期:
3、流量削峰
2)秒杀业务根据消息队列中的请求信息,再做后续处理。
4、消息通讯
常用消息队列
ActiveMQ、RabbitMQ、RocketMQ、Kafka比较
生产者消费者模式(Producer-Consumer)
ActiveMQ-支持,RabbitMQ-支持,RocketMQ-支持,Kafka-支持。
发布订阅模式(Publish-Subscribe)
ActiveMQ-支持,RabbitMQ-支持,RocketMQ-支持,Kafka-支持。
请求回应模型(Request-Reply)
ActiveMQ-支持,RabbitMQ-支持,RocketMQ-不支持,Kafka-不支持。
ActiveMQ-无,RabbitMQ-无,RocketMQ-阿里云,Kafka-阿里云。
ActiveMQ、RabbitMQ、RocketMQ、Kafka****总体来说
Kafka设计的初衷就是处理日志的,不支持AMQP事务处理,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性。
Kafka的性能(吞吐量、tps)比RabbitMQ要强,如果用来做大数据量的快速处理是比RabbitMQ有优势的。
作者:小怪聊职场 来源:www.jianshu.com/p/1582b37291f9
与其在网上拼命找题?** 不如马上关注我们~**
原文始发于微信公众号(Java面试题精选):