1、什么是ActiveMQ?
ActiveMQ
是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。
2、activeMQ的作用以及原理?
实现系统间的通信,实现系统间解耦、异步、削峰等作用。
原理就是生产者生产消息, 把消息发送给activemq
。 Activemq
接收到消息, 然后查看有多少个消费者, 然后把消息转发给消费者, 此过程中生产者无需参与。 消费者接收到消息后做相应的处理和生产者没有任何关系。
3、activeMQ的有几种通信方式?(网易)
- 点对点通信:一个生产者对应一个消费者。
- 发布订阅模式:类似于微信的公众号,一个生产者对应多个消费者。
两种模式的异同?
订阅发布模式,没有订阅者的话消息会被丢弃。点对点模式消息会保存到activeMQ
服务器中。
订阅发布模式随着订阅的增长性能会逐渐降低,点对点模式不会。
4、如何解决消息丢失问题?(网易)
点对点模式的话, 如果消息发送不成功此消息默认会保存到 activemq
服务端直到有消费者将其消费, 所以此时消息是不会丢失的。
5、如何解决消息重复消费的问题?(网易)
-
MySQL数据库中添加一张消息消费记录表