Java面试题-消息中间件

目录

@、列举了当下比较知名的消息引擎

@、消息队列使用场景

@、消息中间件acitveMQ的作用、原理?

@、了解几种消息中间件产品?各产品的优缺点介绍; 消息中间件如何保证消息的一致性和如何进行消息的重试机制?


@、列举了当下比较知名的消息引擎

  1. ZeroMQ
  2. 推特的Distributedlog
  3. ActiveMQ:Apache旗下的老牌消息引擎
  4. RabbitMQ、Kafka:AMQP的默认实现。
  5. RocketMQ
  6. Artemis:Apache的ActiveMQ下的子项目
  7. Apollo:同样为Apache的ActiveMQ的子项目的号称下一代消息引擎
  8. 商业化的消息引擎IronMQ
  9. 以及实现了JMS(Java Message Service)标准的OpenMQ。

@、消息队列使用场景

Java面试题-消息中间件

1.解耦

解耦是消息队列要解决的最本质问题。

2.最终一致性

最终一致性指的是 两个系统的状态保持一致,要么都成功,要么都失败 。

最终一致性不是消息队列的必备特性,但确实可以依靠消息队列来做最终一致性的事情。

3.广播

消息队列的基本功能之一是进行广播。

有了消息队列,我们只需要关心消息是否送达了队列,至于谁希望订阅,是下游的事情,无疑极大地减少了开发和联调的工作量。

4.错峰与流控

典型的使用场景就是秒杀业务用于流量削峰场景。

@、消息中间件acitveMQ的作用、原理?

作用:acitveMQ就是消息队列,activemq安装之后,会有一个broker(经纪人)。

消息的生产者将消息发送到broker中,它不关心谁消费该消息。

消息的消费者去broker中获取信息,它不关心谁提供消息

@、了解几种消息中间件产品?各产品的优缺点介绍; 消息中间件如何保证消息的一致性和如何进行消息的重试机制?