Java面试题-消息中间件
目录
@、了解几种消息中间件产品?各产品的优缺点介绍; 消息中间件如何保证消息的一致性和如何进行消息的重试机制?
@、列举了当下比较知名的消息引擎
- ZeroMQ
- 推特的Distributedlog
- ActiveMQ:Apache旗下的老牌消息引擎
- RabbitMQ、Kafka:AMQP的默认实现。
- RocketMQ
- Artemis:Apache的ActiveMQ下的子项目
- Apollo:同样为Apache的ActiveMQ的子项目的号称下一代消息引擎
- 商业化的消息引擎IronMQ
- 以及实现了JMS(Java Message Service)标准的OpenMQ。
@、消息队列使用场景
1.解耦
解耦是消息队列要解决的最本质问题。
2.最终一致性
最终一致性指的是 两个系统的状态保持一致,要么都成功,要么都失败 。
最终一致性不是消息队列的必备特性,但确实可以依靠消息队列来做最终一致性的事情。
3.广播
消息队列的基本功能之一是进行广播。
有了消息队列,我们只需要关心消息是否送达了队列,至于谁希望订阅,是下游的事情,无疑极大地减少了开发和联调的工作量。
4.错峰与流控
典型的使用场景就是秒杀业务用于流量削峰场景。
@、消息中间件acitveMQ的作用、原理?
作用:acitveMQ就是消息队列,activemq安装之后,会有一个broker(经纪人)。
消息的生产者将消息发送到broker中,它不关心谁消费该消息。
消息的消费者去broker中获取信息,它不关心谁提供消息
@、了解几种消息中间件产品?各产品的优缺点介绍; 消息中间件如何保证消息的一致性和如何进行消息的重试机制?